【发布时间】:2015-08-05 06:48:28
【问题描述】:
我有一个 angularjs 应用程序,其中有两个控制器。我需要通过使用第二个控制器中的按钮的 ng-click 来设置或更新第一个控制器输入字段的 ng-model。由于第一个控制器的 $scope 无法从第二个控制器访问,因此可以使用 $scope 来完成。我尝试使用 $rootScope 。这里是example fiddle。
var myApp = angular.module('myApp',[]);
function MyCtrl1($scope, $rootScope) {
$rootScope.name = 'anonymous';
}
function MyCtrl2($scope, $rootScope) {
$scope.myclick = function()
{
$rootScope.name = "myname";
}
}
html代码
<div ng-controller="MyCtrl1">
<input type="text" ng-model="name" ng-change="ontxtchange(name)"></input>
</div>
<div ng-controller="MyCtrl2">
<button ng-click="myclick()">click</button>
</div>
如果我点击按钮 ng-model 得到更新。但是如果我在点击按钮之前对文本框进行任何更改,则 $rootScope 将不会更新 ng-model。那么如何解决呢?
【问题讨论】:
标签: javascript angularjs