假设我想编写如下 HTML:
<div my-directive my-start="topModel.start" my-end="topModel.end">
my-directive
有一个使用 调用其他指令的模板ngModel
,如下所示:
<div>
<input ng-model="myStart" />
<input ng-model="myEnd" />
</div>
我希望内部输入透明地更新topModel
。它不能这样工作,因为没有点在ng-model
属性中没有点,并且值是在本地范围内设置的。
到目前为止,我发现的唯一方法是观看两个模型my-directive
并进行翻译,但这是一个可怕的可憎之处。
restrict: 'A',
scope: {
myStart: '=',
myEnd: '='
},
link: function(scope, el, attrs) {
scope.model = { start: scope.myStart, end: scope.myEnd };
scope.$watch("model.start", function(n) {
scope.myStart = n;
});
scope.$watch("model.end", function(n) {
scope.myEnd = n;
});
scope.$watch("myStart", function(n) {
scope.model.start = n;
});
scope.$watch("myEnd", function(n) {
scope.model.end = n;
});
}
我怎样才能通过绑定 my-directive
给内部指令?
编辑:见 plunker 在http://plnkr.co/edit/ppzVd7?p=preview - 这个确实有效
EDIT2 :在http://plnkr.co/edit/Nccpqn?p=preview中查看另一个- 这个显示了没有点的“直接访问”是如何不起作用的,而使用点并且$watches
是。