【发布时间】:2015-10-26 17:20:47
【问题描述】:
我在 stack over flow 中为此主题引用了很多问题。但它们似乎都不适合我。
我有两个 html 页面: AddUser.html 和 ListUser.html。两个页面都有相同的 ng-app="myApp" 指令,但是有两个不同的控制器。
AddUser.html
ng-app="myApp" ng-controller="userCtrl"
ListUser.html
ng-app="myApp" ng-controller="listCtrl"
我需要将从 Adduser 页面添加的数据传递到 Listuser 页面。为此我写了一个服务
app.js
var ang = angular.module('myApp', ['ngRoute']);
ang.config(function ($routeProvider) {
$routeProvider
.when('/Add_Users', {
templateUrl: 'Add_Users.html',
controller: 'userCtrl'
})
.when('/List_Users', {
templateUrl: 'List_Users.html',
controller: 'listCtrl'
})
.otherwise({
redirectTo: '/Add_Users'
});
});
service.js
ang.service('userService', function () {
var userList = [];
var addUser = function (newObj) {
console.log("called addUser");
userList.push(newObj);
console.log("userList AFTER ADD::" + userList);
};
var getUsers = function () {
console.log("called getUsers" + userList + " >>");
return userList;
};
return {
addUser: addUser,
getUsers: getUsers
};
});
在控制器中,我正在调用服务方法。如下所示
ang.controller('userCtrl', function ($scope,userService) {
userService.addUser($scope.user_details);
});
并在下一个控制器中检索它
ang.controller( "listCtrl",function($scope,userService){
$scope.userlist = userService.getUsers();
});
但是在第二页中,对象是空的。尝试了许多解决方案,但似乎没有一个有效。
是不是因为第二页的ng-app指令导致服务重新初始化?
【问题讨论】:
-
使用服务传递数据
-
如果你读到我的问题,我已经写了一个服务。
-
你实现了路由吗? (在你的 Angular 应用中)
-
如果您使用 2 个单独的 ng-apps,那么“是”。服务将重新初始化。
-
是的。我的问题中也包含了这一点。