当我从控制器更改时,Angular ng-style 不会自动应用更改
Posted
技术标签:
【中文标题】当我从控制器更改时,Angular ng-style 不会自动应用更改【英文标题】:Angular ng-style does not automatically apply changes when I change it from controller 【发布时间】:2016-03-01 12:54:01 【问题描述】:我有一些使用 ng-style 的内容,这里是模板 html 的一部分:
<div ui-tree-handle data-nodrag
class="tree-node tree-node-content"
ng-click="toggle(this)"
ng-style=breddeCSS>
breddeCSS 在这里的控制器中定义:
function setBreddeCSS(b)
switch (b)
case 0:
$scope.breddeCSS =
"margin": "-1px",
;
break;
case 1:
$scope.breddeCSS =
"margin": "5px",
;
break;
default:
$scope.breddeCSS =
"margin": "10px",
;
模板获取页边距样式,但仅在网站首次加载时。如果我更改了 $scope.bredde,只有在刷新页面时我才能看到更改!
我希望每次更新 $scope.bredde 时页面都会动态更改。我该怎么做?
【问题讨论】:
@ArpitSrivastavabreddeCSS
是一个对象,而不是一个函数。
【参考方案1】:
ngStyle
需要一个表达式本身,而不是它的求值结果。 Docs.
<div ui-tree-handle data-nodrag
class="tree-node tree-node-content"
ng-click="toggle(this)"
ng-style="breddeCSS">
http://plnkr.co/edit/RxTte5njdS8GfTiD73LA?p=preview
【讨论】:
以上是关于当我从控制器更改时,Angular ng-style 不会自动应用更改的主要内容,如果未能解决你的问题,请参考以下文章
Ionic 4:当我从 IOS 中的控制器更改“img”标签的“src”内容时,它没有更新
当搜索过滤器值从javascript更改时,智能表不会更新[重复]
当我更改页面时,ionViewDidLeave 和 ionViewDidEnter 没有触发