指令中的Angular一次性绑定,当范围更改时,隔离范围不会更新

时间:2014-11-23 08:47:16

标签: angularjs binding angularjs-directive

我在指令模板中使用了角度1.3的一次性绑定。该指令具有独立的范围,并根据所选对象呈现不同的数据。我的问题是,当我更改所选对象时,一次绑定的属性不会更新。

我想这可能是预期的行为。我的问题是,我可以以某种方式使指令模板更新也是一次绑定属性,但不能让它们被监视吗?

我附上一名说明问题的傻瓜:

http://plnkr.co/edit/NAHVfhCf6RhpJHPGl7El?p=preview

代码: 使用Javascript:

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

  $scope.objects = [
    { name: 'Object1', type: 'Type1' },
    { name: 'Object2', type: 'Type2' }
  ];

  $scope.selectedObject = $scope.objects[0] ;

  $scope.setSelected = function () {
    if($scope.selectedObject == $scope.objects[0]) {
      $scope.selectedObject = $scope.objects[1];
    } else {
      $scope.selectedObject = $scope.objects[0];
    }
  }
});


app.directive('sidebar',function() {
  return {
        scope: { 
            'selected': '=selected',
        }, 
        restrict: 'A', 
        template: 'Name: {{selected.name}}</span><br>Type: <span>{{::selected.type}}</span>',
    };
});

HTML:

<body ng-controller="MainCtrl">
    <button ng-click="setSelected()">Change selected</button>

    <div sidebar selected="selectedObject"></div>
 </body>

0 个答案:

没有答案