我有一个使用父范围的简单指令。但是我无法访问指令的范围。我做错了什么?
<p>myFrm2.$name: {{myFrm2.$name}}</p>
<pane>
<form name="myFrm2" id="myFrm2">
<input type="text" ng-model="fld2">
</form>
</pane>
https://plnkr.co/edit/AIUK2tBiiVs21so2k5JR?p=preview
这是指令:
.directive('pane', function() {
return {
restrict: 'E',
transclude: true,
scope: false,
template: '<div style="border: 1px solid black;">' +
'<div style="background-color: gray; color:white">Test Directive</div>' +
'<ng-transclude></ng-transclude>' +
'</div>'
};
})
当我在我的指令中设置$ scope:false时,我认为范围是在指令和它的父范围之间共享。
答案 0 :(得分:1)
使用对象模型或controllerAs别名时问题消失。
对象示例
控制器中的
$scope.forms ={};
在视图中
<p>myFrm2.$name: {{forms.myFrm2.$name}}</p>
<pane>
<form name="forms.myFrm2" id="myFrm2">
<input type="text" ng-model="fld2">
</form>
</pane>
请注意,您应始终使用ng-model
中的对象
的 DEMO 强>