子控制器$ scope属性更改未更新为父级

时间:2014-06-18 19:41:47

标签: javascript angularjs

我仍然对angularjs和范围感到陌生,但我在子控制器中更改了范围值时遇到问题,而且没有正确影响父值。

一个例子:

我有一个监视textarea变化的子控制器。当它们出现时,我设置一个布尔标志来指示文档有未保存的更改。

editor.on('input propertychange', function(){
   $scope.unsaved = true;
}).focus();

但是,这似乎永远不会过滤到父作用域。我的根模板有一个锚:

<a ng-class="{'active': unsaved}" ...

在加载时正确设置类,但在$scope.unsaved执行时不会更改。

如果我设置了$scope.$parent.unsaved,它只会在输入事件第二次触发时更改模板。

2 个答案:

答案 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,没有第三方代码

http://plnkr.co/edit/4DZAncKYS0XvTB7Z4YEQ?p=preview