繁体   English   中英

在AngularJS中将数据从一个控制器传递到另一个控制器

[英]Passing data from one controller to another controller in AngularJS

如何将数据从一个控制器传递到另一个控制器?

我读了很多东西,例如使用root Scope,使用服务,使用广播事件等,但似乎什么都没有用。 有人可以指导我吗?

您可以使用服务factory在控制器之间共享数据。

演示

 var app = angular.module("clientApp", []) app.controller("TestCtrl", function($scope,names) { $scope.names =[]; $scope.save= function(){ names.add($scope.name); } } ); app.controller("TestCtrl2", function($scope,names) { $scope.getnames = function(){ $scope.names = names.get(); } } ); app.factory('names', function(){ var names = {}; names.list = []; names.add = function(message){ names.list.push({message}); }; names.get = function(){ return names.list; }; return names; }); 
 <!doctype html> <html > <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> <script src="script.js"></script> </head> <body ng-app="clientApp"> <div ng-controller="TestCtrl"> <input type="text" ng-model="name"> <button ng-click="save()" > save</button> </div> <div ng-init="getnames()" ng-controller="TestCtrl2"> <div ng-repeat="name in names"> {{name}} </div> </div> </body> </html> 

路线演示

I think you are switching controller due to state change. Then an easy way to pass data from parent controller to any child controller apart from using factory or services is using state params

// In parent controller
$state.go('child.state', {
        'key' : $scope.value
    });
 //In child controller
$scope.sentObject = angular.copy($stateParams.key);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM