Nano Hash - криптовалюты, майнинг, программирование

Проблема с выбором списка при использовании CustomListItem и StandardListItem внутри списка с includeItemInSelection

У меня есть следующее представление, в котором есть Список, и я установил для свойства includeItemInSelection значение true. И там я также прикрепил к событию selectionChange.

<mvc:View 
    controllerName="com.naveen.test.list.controller.List"
    xmlns="sap.m" 
    xmlns:mvc="sap.ui.core.mvc"
    height="100%">
    <List 
        selectionChange="onSelectionChange" 
        includeItemInSelection = "true"
        mode = "MultiSelect"
        items="{
            path: '/data',
            factory: '.listItemFactory'
        }">
    </List>
</mvc:View>

В основном элементы списка будут созданы с помощью фабричного метода listItemFactory в контроллере, как показано ниже.

    listItemFactory : function(sId, oContext) {
        var each = oContext.getObject();
        var listItem = null;
        if( each.type === 'Group' ) {
            var childList = new List({
                includeItemInSelection : true,
                selectionChange : jQuery.proxy(this.onSelectionChange,this),
                mode : "MultiSelect"
            });
            childList.bindItems({
                path : 'childData',
                factory : jQuery.proxy(this._childListFactory, this)
            });
            listItem = new CustomListItem({
                selected : '{selected}',
                content : [childList]
            });
        } else {
            listItem = this._childListFactory(sId, oContext);
        }
        return listItem;
    },
    _childListFactory : function(sId, oContext){
        return new StandardListItem({
            title : '{name}',
            selected : '{selected}'
        });
    },
    onSelectionChange : function(oEvent) {
        console.log(oEvent);
    }

И данные json для этого следующие.

{  
   "data":[  
    {
        "id" : "1",
        "name" : "Name1",
        "selected" : true,
        "type" : "Normal",
        "childData" : []
    },
    {
        "id" : "2",
        "name" : "Name2",
        "selected" : false,
        "type" : "Normal",
        "childData" : []
    },
    {  
        "id":"LAYER15",
        "name":"Name3",
        "selected":true,
        "type":"Group",
        "childData" : [  
            {
                "id":"3-1",
                "name":"Name3-1",
                "selected":true
            },
            {  
                "id":"3-2",
                "name":"Name3-2",
                "selected": false
            },
            {
                "id":"3-3",
                "name":"Name3-3",
                "selected":true
            }
        ]
    }
    ]
}

Но когда мы нажимаем на дочерний элемент списка, он запускает событие для этого дочернего элемента списка, а также для родительского элемента списка. Как остановить родительское событие для этого одного элемента.

К вашему сведению, нажмите на элемент с заголовком Name3-2. См. Консоль, там будет два журнала.

31.03.2017

Ответы:


1

попробуйте использовать функцию jQuery preventDefault (). https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault

04.04.2017
  • Прежде всего я благодарю вас. Я пробовал использовать preventDefault и cancelBubble. Но в элементе управления List ui5 может быть отменено только событие swipe, а не событие selectionChange. 05.04.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..