Javascript 如何在两个不同的控制器中传递ng模型的值
我有一个ng模型,我想从两个不同的控制器访问它的值。我知道在两个不同的控制器之间共享数据的方法是使用服务。但我不能将ng模型的值用于服务,而只能从控制器使用 您可以将两个控制器div包装在一个共同的父控制器中,然后$watch查看该模型的更改,然后在$watch中查看更改时$emit将更改发送到子控制器 供参考的链接Javascript 如何在两个不同的控制器中传递ng模型的值,javascript,angularjs,Javascript,Angularjs,我有一个ng模型,我想从两个不同的控制器访问它的值。我知道在两个不同的控制器之间共享数据的方法是使用服务。但我不能将ng模型的值用于服务,而只能从控制器使用 您可以将两个控制器div包装在一个共同的父控制器中,然后$watch查看该模型的更改,然后在$watch中查看更改时$emit将更改发送到子控制器 供参考的链接 您可以使用rootscope访问ng模型变量。但这不是一个好的做法 <input ng-model="mk" type="text"> 并在另一个控制器中以$root
您可以使用rootscope访问ng模型变量。但这不是一个好的做法
<input ng-model="mk" type="text">
并在另一个控制器中以$rootScope.mk的形式访问它
注意:您必须在控制器中注入$rootScope。为什么不能使用服务?服务正是您在应用程序的不同部分共享数据的方式。您可以通过在每个控制器上公开服务并将ng模型绑定到该服务来实现这一点 JS HTML
Plunker:模型数据存储在哪里?
$rootScope.mk=$scope.mk;
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;
}]);
<div ng-controller="MainCtrl">
<input type="text" ng-model="User.username">
</div>
<div ng-controller="SecondCtrl">
<input type="text" ng-model="User.username">
</div>