在链接函数中调用$ observe不能正常工作AngularJS(v1.0.8)

时间:2013-10-26 01:33:08

标签: angularjs angularjs-directive

    return {
        restrict: 'AE',
        controller: 'myAwesomeCtrl',
        templateUrl: '/myAwesome.html',
        replace: true,
        link: function (scope, element, attrs) {
            attrs.$observe('attributeName', function (x) {
                scope.setAttrName(x);
            });
        }
    };

在ng-repeat和ng-switch中声明:

<div ng-repeat="f in fs">
   <div ng-switch on="f.Name">
      <myDirective attribute-name="{{f.AttributeName}}" ng-switch-when="thisIsTrue"></myDirective>
   </div>
</div>

令人惊讶的是,如果我从指令的控制器访问$ attrs,它会正确插值{{f.AttributeName}}。

    $attrs.$observe('attributeName', function (x) {
        $scope.setAttrName(x);  // value of x is 'TheValue'
    });

这不是预期的行为,可以吗? v1.0.8

编辑:我刚刚确认它与ng-switch或ng-repeat无关......即使该指令本身也无法正常工作。

这里是PLUNKER: http://plnkr.co/edit/p46zuYbFAFCYH394zrUY?p=preview

1 个答案:

答案 0 :(得分:1)

这是一个错误,我向有角度的团队提交了它。我正在努力解决问题并提交拉取请求。