我仍然对angularjs和范围感到陌生,但我在子控制器中更改了范围值时遇到问题,而且没有正确影响父值。
一个例子:
我有一个监视textarea变化的子控制器。当它们出现时,我设置一个布尔标志来指示文档有未保存的更改。
editor.on('input propertychange', function(){
$scope.unsaved = true;
}).focus();
但是,这似乎永远不会过滤到父作用域。我的根模板有一个锚:
<a ng-class="{'active': unsaved}" ...
在加载时正确设置类,但在$scope.unsaved
执行时不会更改。
如果我设置了$scope.$parent.unsaved
,它只会在输入事件第二次触发时更改模板。
答案 0 :(得分:0)
你能做的一件事就是取而代之的是
editor.on('input propertychange', function(){
$scope.unsaved = true;
}).focus();
您只需添加ng-change
事件:
<input type="text" ng-model="a" ng-change="madeChange()"/>
在scope
中添加新方法:
$scope.madeChange = function() {
$scope.saved = false;
}
Plunkr here
答案 1 :(得分:0)
已经做了一个工作示例,控制器之间的双向数据绑定,纯粹在angularjs,没有第三方代码