如何將數據從一個控制器傳遞到另一個控制器?將數據從一個控制器傳遞到AngularJS中的另一個控制器
我看了很多東西,比如使用root Scope,使用服務,使用廣播事件等,但似乎沒有任何工作。有人可以指導我嗎?
如何將數據從一個控制器傳遞到另一個控制器?將數據從一個控制器傳遞到AngularJS中的另一個控制器
我看了很多東西,比如使用root Scope,使用服務,使用廣播事件等,但似乎沒有任何工作。有人可以指導我嗎?
您可以使用Service或factory
在控制器之間共享數據。
DEMO
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);
參見一個代碼示例這樣一個問題:http://stackoverflow.com/questions/21919962/share-data -between-angularjs-controllers – DevDig
這裏是plunker:https://plnkr.co/edit/T2QZMamO 8tg5wPnm2V40?p =預覽 – ritesh