当我从控制器更改Angular ng样式时,它不会自动应用更改

Angular ng-style does not automatically apply changes when I change it from controller

本文关键字:应用 样式 控制器 Angular ng      更新时间:2023-09-26

我有一些使用ng样式的内容,这是模板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时页面都能动态更改。我该怎么做?

ngStyle需要一个表达式本身,而不是其求值的结果。文档。

<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