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

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

我有一些使用 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 更新时页面都动态变化。我该怎么做?

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