【发布时间】:2018-02-08 19:13:58
【问题描述】:
我有一个场景,我必须根据变量多次使用 ng-style(或 ng-class)。
但这给我带来了很多痛苦,因为每次(对于每个小部件)ng-class 都编写相同的功能。
所以想知道是否有办法摆脱它。我知道我可以创建一个 C 类型指令来实现这一点。但这似乎不起作用。
这是我的代码:
<div class="panel panel-primary" ng-style="expanded1 ? {{'height': viewPortHeight} : ''" ng-click="expanded1=!expanded1">Panel 1</div>
..........
<div class="panel panel-primary" ng-style="expanded2 ? {{'height': viewPortHeight} : ''" ng-click="expanded2=!expanded2">Panel 2</div>
我可以有一个指令(C 或 A),它可以看到变量“扩展”(仅适用于这个元素)并将样式添加到这个元素。
我试过了,但似乎不起作用
== 指令
(function (app) {
app.directive('expandWidget', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
scope.$watch('expanded', function(expanded){
if(expanded)
element.css('height', 'viewPortHeight')
else element.css('height', '300px')
})
}
}
})
})
<div class="panel panel-primary" expand-widget ng-click="expanded1=!expanded1">Panel 1</div>
我也可以使用其他方法,它可以达到上述目的。
【问题讨论】:
-
你在使用引导程序吗?
panel panel-primary闻起来像 bs3.x ..? -
是的..我正在使用引导程序。
标签: javascript css angularjs angularjs-directive