如何在两个不同的控制器中传递ng模型的值
How to pass the value of ng-model in two different controllers
我有一个ng-model
,我希望从两个不同的控制器访问它的值。我知道在两个不同的控制器之间共享数据的方法是使用service
。但我不能将ng-model
的值用于服务,只能从控制器使用。
您可以使用rootscope来访问该ng模型变量。但这不是一个好的做法。
<input ng-model="mk" type="text">
在控制器中:
$rootScope.mk=$scope.mk;
并将其作为$rootScope.mk
在其他控制器中访问
注意:您必须在控制器中注入$rootScope。
当在$watch()中监视更改时,您可以将两个控制器div包装在一个共同的父控制器中,然后为该模型的更改打包$watch
参考链接
$watch参考
$emit参考
为什么不能使用服务?服务正是您在应用程序的不同部分之间共享数据的方式。您可以通过在每个控制器上公开您的服务并将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>
Plunker:http://plnkr.co/edit/VSEHD970O0xWbu6OCPqB?p=preview
相关文章:
- 将不在模型中的数据返回到mvc控制器
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- 模型数据未通过窗体传播到控制器ASP.NET MVC4
- 概念验证模型控制器调用正确的实例
- 如何从其他控制器更改角度模型值
- 如何在打开模型时动态加载控制器文件
- 如何从另一个控制器更新控制器的ng重复模型
- 控制器内部无法访问Angular js输入模型
- 将视图链接到模型并将视图链接至控制器的代码位于何处
- 一个控制器如何在 Ember .js 中观察任意控制器/模型上的事件
- Angularjs 绑定 2 指令将模型范围限定为父控制器模型
- 角度文件上传指令不更新控制器模型
- 在javascript中阅读弹簧控制器模型
- UI-select2 内部指令未更新控制器模型
- EmberJS:基于另一个属性重新加载控制器模型的最佳方法
- AngularJS -在指令中改变控制器模型
- 如何在javascript中获取springmvc控制器模型键值
- 使用controllerAs语法通过$watch指令更改父控制器模型
- 使用控制器模型向数组中添加对象
- 如何使用Ajax进程显示来自控制器/模型的数据