我用模板创建了angular指令:
<div class="directiveclass">
<div ng-repeat="i in items">
<input type="radio" ng-model="myvalue" value="{{$index}}">
</div>
</div>
ng-model“myvalue”是指令局部范围的一部分:
.directive('mydirective', function()
{
return {
templateUrl: "path",
scope: {},
link : function(scope, el, attr)
{
scope.myvalue = 0;
scope.$watch('myvalue', function()
{
console.log('myvalue changed');
});
}
};
}
我点击单选按钮元素,但“myvalue”值永远不会改变。
有什么想法吗?
答案 0 :(得分:1)
我找到了解决方案。 由于ng-repeat创建了新范围,我已将ng-model值更改为 $ parent.myval 以访问指令范围。
答案 1 :(得分:0)
在HTML中:
<input type="radio" ng-model="$parent.myvalue" value="{{$index}}">
这使您可以访问ng-model,因为ng-repeat已经创建了自己的范围。
不需要更改指令。