1

Я использую bootstra-multiselect вместе с angularjs в моем проекте. Во время тестирования, что я нашел, имя атрибута «selected» становится конфликтом между этими двумя. Ниже приведена моя разметка HTML для моей директивы multi select.Конфликт при использовании атрибута «selected» в раскрывающемся списке мультиселектов с использованием bootstrap-multiselect и конфликта с angularjs «selected» директива

<select id="example-getting-started" multiple="multiple" name="multiselect[]" data-dropdownmultiselect>  
    <option data-ng-repeat="option in options" value="{{getOptionId(option)}}" data-ng-attr-selected="{{isOptionSelected(option)}}" data-ng-bind-template="{{option.name}}"></option> 
</select> 

Что я нашел, data-ng-attr-selected="{{isOptionSelected(option)}}" не получает составитель angularjs. Кажется, что вместо заданного нормального атрибута применяется угловая js "ng-selected".

Как это можно решить? Я не хочу менять код или bootstra-multiselect или angularjs, чтобы избежать будущей устойчивости. Есть ли что-то в Angularjs, чтобы остановить выполнение своей предопределенной директивы «ng-selected»?

Ниже plunker код дем этой проблеме Angularjs and conflict of directive name with other module

ответ

1

Вы можете использовать ng-selected="expression" который добавит selected атрибута с selected значения в текущем select варианта, я не понимаю, почему вы делаете это с помощью ng-attr пока вы может контролировать, что с помощью ng-selected="isOptionSelected(option)"

Markup

<select id="example-getting-started" multiple="multiple" name="multiselect[]" data-dropdownmultiselect>  
    <option data-ng-repeat="option in options" value="{{getOptionId(option)}}" 
    ng-selected="isOptionSelected(option)" 
    data-ng-bind-template="{{option.name}}"></option> 
</select> 

Working Plunkr

Позвольте мне знать, если вы хотите что-либо на нем, спасибо :)

+0

Спасибо за ваше решение. Хорошо, что это работает в plunker, однако, когда я пытался переместить один и тот же код в моей базе кода, тогда я вижу, что выражение выполняется, но имя атрибута по-прежнему «выбрано как« ng-selected », как показано ниже, не знаете почему? <опция data-ng-repeat = "опция в параметрах" value = "eq000001" data-ng-selected = "selected" data-ng-bind-template = "ab crunch machine - обновлен" class = "ng-scope ng -binding "> ab crunch machine - обновленный – joy

+0

делает угловую версию plunkr и ваш код такой же? и я не думаю, что это повлияет каким-либо образом на 'data-ng-selected =" selected "' ... i всегда будет добавлять 'selected =" selected "', когда ng-selected expression is true –

+0

Я использую угловой v 1.3 +0,0. Я понял, что с моей версией мне нужно вернуть true/false. – joy