我需要动态设置选择标记的多个属性。
这应该有效:
<select ng-attr-multiple="param.MultiValue">
并成为
<select multiple>
如果param.MultiValue的计算结果为true,否则 - 没有多个属性。
不起作用,我得到没有多个属性的select标签。
即使我使用
<select ng-attr-multiple="true">
知道为什么吗?
感谢。
答案 0 :(得分:2)
Web浏览器有时会对它们认为对属性有效的值感到挑剔。 ng-attr
用于绑定arbitrary attributes
,select
不是&#34;知道&#34; ng-attr-multiple
正在尝试设置multiple
属性,它只是直接对多个做出反应。
相反,我建议你编写一个包装器指令,它将multiple
属性添加到你的元素中。
有关详细信息,请参阅此文档链接:
https://docs.angularjs.org/guide/interpolation
问题链接:
https://github.com/angular/angular.js/issues/13570
var mymodule = angular.module('myApp', []);
function sampleController($scope, $timeout) {
$scope.addAttribute = true;
}
mymodule.controller('sampleController', sampleController)
.directive('multipleAttr', function() {
return {
'restrict': 'A',
'compile': function() {
return {
'pre': function($s, $el, attrs) {
if (attrs.multipleAttr === 'true' || attrs.multipleAttr === true) {
$el.attr('multiple', true);
}
}
}
}
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="sampleController">
<select multiple-attr="{{addAttribute}}">
<option>Hi</option>
<option>Hello</option>
<option>Hey</option>
</select>
</div>
</div>
&#13;