Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在两个不同的控制器中传递ng模型的值_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在两个不同的控制器中传递ng模型的值

Javascript 如何在两个不同的控制器中传递ng模型的值,javascript,angularjs,Javascript,Angularjs,我有一个ng模型,我想从两个不同的控制器访问它的值。我知道在两个不同的控制器之间共享数据的方法是使用服务。但我不能将ng模型的值用于服务,而只能从控制器使用 您可以将两个控制器div包装在一个共同的父控制器中,然后$watch查看该模型的更改,然后在$watch中查看更改时$emit将更改发送到子控制器 供参考的链接 您可以使用rootscope访问ng模型变量。但这不是一个好的做法 <input ng-model="mk" type="text"> 并在另一个控制器中以$root

我有一个ng模型,我想从两个不同的控制器访问它的值。我知道在两个不同的控制器之间共享数据的方法是使用服务。但我不能将ng模型的值用于服务,而只能从控制器使用

您可以将两个控制器div包装在一个共同的父控制器中,然后$watch查看该模型的更改,然后在$watch中查看更改时$emit将更改发送到子控制器

供参考的链接


您可以使用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>