我有一个多步骤表单,其中第一步的信息应该可用于下一步。
如何在视图之间共享此信息?我应该在$rootScope
中附加模型还是创建一个公共父控制器?
答案 0 :(得分:2)
创建一个服务来存储共享项,因为服务是单例。这是一个任意的例子。
sharedDataExampleModule.service('SharedData', function(){
var data = {};
// API to get/set shared data
return {
getData: function(){},
setData: function(data){}
};
});
将服务注入任何需要访问数据的控制器。
sharedDataExampleModule.controller('ControllerA', function($scope, SharedData){
// set data
SharedData.setData($scope.objectContainingOurSharedData);
});
sharedDataExampleModule.controller('ControllerB', function($scope, SharedData){
// get data
$scope.shared = SharedData.getData();
});
答案 1 :(得分:1)
First View Controller,传递对象参数:
function FirstViewController($scope) {
$http.post(url).success(function(objModel){
$scope.objModel = objModel;
}).error(function(msg){
console.log(msg);
});
}
第二视图控制器,获取参数:
function SecondViewController($scope, $params) {
var objModel = $params.objModel;
}
我希望能帮助你。