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
答案 0 :(得分:1)
这是一个错误,我向有角度的团队提交了它。我正在努力解决问题并提交拉取请求。