1

我在我的项目中使用bootstra- multiselect 和 angularjs。在测试期间我发现,“选定”属性名称在这两者之间发生冲突。以下是我的多选指令的 HTML 标记。

<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 编译的。似乎正在应用 Angular js“ng-selected”指令,而不是我需要的普通属性。

如何解决这个问题?我不想更改代码或 bootstra-multiselect 或 angularjs 以避免将来的可维护性。Angularjs 中有什么东西可以停止运行其预定义的“ng-selected”指令吗?

以下是演示此问题 Angularjs 和指令名称与其他模块冲突的plunker 代码

4

1 回答 1

1

您可以使用ng-selected="expression"which 将在当前选项中添加selected带有值的属性,我不明白您为什么要使用它,而您可以使用它来控制它selectedselectng-attrng-selected="isOptionSelected(option)"

标记

<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>

工作Plunkr

如果您还想要其他任何东西,请告诉我,谢谢:)

于 2015-04-05T11:19:22.303 回答