我有一个ng-model
,我希望从两个不同的控制器访问它的值。我知道在两个不同控制器之间共享数据的方法是使用service
。但我不能将ng-model
的值用于服务,而只能使用控制器。
答案 0 :(得分:0)
您可以将两个控制器div包装在一个共同的父级中,然后使用$ watch()来更改该模型,然后$ emit()在$ watch中观察更改时对子控制器的更改()
参考链接
答案 1 :(得分:0)
你可以使用rootscope来访问那个ng-model变量。但这不是一个好习惯。
<input ng-model="mk" type="text">
控制器中的:
$rootScope.mk=$scope.mk;
并在其他控制器中以$rootScope.mk
注意:您必须在控制器中注入$ rootScope。
答案 2 :(得分:0)
为什么不能使用服务?服务正是您在应用程序的不同部分共享数据的方式。您可以通过在每个控制器上公开您的服务并将ng-model
绑定到该服务来实现此目的。
JS
angular.module('app', [])
.factory('User', [function () {
var service = {
username: null
};
return service;
}])
.controller('MainCtrl', ['$scope', 'User', function ($scope, User) {
$scope.User = User;
}])
.controller('SecondCtrl', ['$scope', 'User', function ($scope, User) {
$scope.User = User;
}]);
HTML
<div ng-controller="MainCtrl">
<input type="text" ng-model="User.username">
</div>
<div ng-controller="SecondCtrl">
<input type="text" ng-model="User.username">
</div>