私はディレクティブのスコープ プロパティです
show
属性名として使用すると正常に動作します。
<span ng-repeat="field in fields">
<field-pill field="field" show="true"></field-pill>
</span>
app.js
angular.module('app',[]);
angular.module('app')
.controller('AppCtrl', function($scope){
$scope.fields = [1,2,3,4];
});
angular.module('app')
.directive('fieldPill', function () {
return {
template: '<div class="pill">{{field}}:{{show}}--<span ng-show="show">x</span></div>',
restrict: 'E',
scope:{
field: "=",
"show": "="
}
};
});
(この plunkr http://plnkr.co/edit/AcqmxeCerCOtGaw9dq9t?p=previewを参照してください)
x-show
しかし、属性名として使用すると、ディレクティブはブール値データをまったくロードしません。
<span ng-repeat="field in fields">
<field-pill field="field" x-show="true"></field-pill>
</span>
app.js
angular.module('app',[]);
angular.module('app')
.controller('AppCtrl', function($scope){
$scope.fields = [1,2,3,4];
});
angular.module('app')
.directive('fieldPill', function () {
return {
template: '<div class="pill">{{field}}:{{xShow}}--<span ng-show="xShow">x</span></div>',
restrict: 'E',
scope:{
field: "=",
xShow: "="
}
};
});
誰でも理由を説明できますか?
x-show
( http://plnkr.co/edit/2txoY3VaShH6WggnugcE?p=previewのコードについては、この plunkr を参照してください)