首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过服务在控制器之间传递数据是行不通的

通过服务在控制器之间传递数据是行不通的
EN

Stack Overflow用户
提问于 2017-03-10 14:42:59
回答 2查看 53关注 0票数 0

我正在尝试使用服务、工厂或广播在控制器之间传递数据的所有方法。他们都不适合我。我在网上遵循了确切的解决方案,但还是很不幸。我把服务放在我的app.js里。

App.JS

代码语言:javascript
复制
myApp.service('customService', [function () {
    this.list = [];

    this.setObject =  function (o) {
        this.list.push(o);
    },
    this.getObject =  function () {
        return this.list;
    }
}]);

控制器#1

代码语言:javascript
复制
myApp.controller('Controller1', function ($scope, customService) {
    customService.setObject({..});
    $window.open("/controller2", '_blank');
}

控制器#2

代码语言:javascript
复制
myApp.controller('Controller2', function ($scope, customService) {
 console.log(customService.getObject()); // Returns []
}

问题

它从控制器1返回控制器2上的[],而不是对象数据。

EN

回答 2

Stack Overflow用户

发布于 2017-03-10 14:52:38

您的控制器在同一页吗?

Angular.js只工作并将数据保存在单个页面上。如果您的页面重新加载(正如您所说的"express.js加载下一页“时所指出的那样),那么它将重新初始化所有内容。 你应该要么: 看看如何使用Angular.js路由(07),以便保持在同一个页面上。使用一些东西来持久化您的数据,例如本地存储。更多信息:http://diveintohtml5.info/storage.html

参考文献:Using angular service to share data between controllers

票数 0
EN

Stack Overflow用户

发布于 2017-03-10 16:51:50

你用过路由吗?如果您使用,那么您的代码应该是工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42721030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档