我需要为设置多个属性,动态选择标签。
这应该是可行的:
<select ng-attr-multiple="param.MultiValue">
然后变成
<select multiple>
如果param.MultiValue计算结果为true,则为否则--不使用多属性。
不工作,我得到没有多个属性的select标记。
即使我用
<select ng-attr-multiple="true">
知道为什么吗?
谢谢。
发布于 2017-01-23 18:40:33
Web浏览器有时会挑剔它们认为哪些值对属性有效。ng-attr
用于绑定arbitrary attributes
,select
并不“知道”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);
}
}
}
}
}
})
<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>
https://stackoverflow.com/questions/41812303
复制相似问题