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>
関連します。http:/ /stackoverflow.com/questions/31872232/conditionally-add-the-multiple-attribute-to-ui-select –
何百ものGoogle結果が関連していますが、なぜこれが機能していないのか説明していません:) – monstro
角度補間は使用できませんブール値の属性。こちらをご覧ください:https://docs.angularjs.org/guide/interpolation @mikeyaworskiが投稿したリンクまたはこのリンクを使用することをお勧めします:http://stackoverflow.com/questions/24043732/conditional-multiple-attribute-in -input-type-file-with-angularjs – JGibbers