如果scope.foo === false,如何删除这些属性?
<div layout="row" layout-align="space-around center">
我想在html代码中执行此操作,而不是在我的指令中。
总而言之,我希望我的应用
<div layout="row" layout-align="space-around center">
some content
</div>
或
<div >
some content
</div>
答案 0 :(得分:1)
看看ng-attr
。
E.g ng-attr-layout="{{myValue}}
在你的控制器中,像$scope.myValue = "row"
答案 1 :(得分:1)
您可以尝试这样的事情:
<div ng-init="foo=true">
<div ng-attr-layout="{{foo?'':undefined}}row" ng-attr-layout-align="{{foo?'':undefined}}space-around center">Hello</div>
<button ng-click="foo=!foo">Toggle</button>
</div>
这将切换layout
上layout-align
和div
属性的显示。
工作原理:
foo
中的scope
属性为false
后,ng-attr-XXX
内的表达式值为undefined
,表示ng-attr-XXX
不会添加XXX
属性到定义了ng-attr-XXX
的元素。
<强> Plunker 强>
答案 2 :(得分:0)
这个怎么样?
<div layout="{{(scope.foo === false)?'':'space-around center'}}" layout-align="{{(scope.foo === false)?'':'row'}}">
你到底想要做什么? @SuperUberDuper
答案 3 :(得分:0)
<div ng-hide="foo === false" layout="row" layout-align="space-around center">
OR
<div ng-hide="getHidden(foo)" layout="row" layout-align="space-around center">
.controller("name", ['$scope', function($scope){
$scope.getHidden = function(foo){
return foo === false;
}
}]);