【问题标题】:sharing data between controllers in different pages. angular在不同页面的控制器之间共享数据。有角度的
【发布时间】:2014-10-27 03:04:26
【问题描述】:

我尝试在不同页面的控制器之间共享数据, 在第一页中,我更改了数据,并且正在更改! 但在第二页中显示的是默认值。

工厂:

app.factory('Sponsor',function(){

    var name='XXX';
    var order=1

    return {
        getName: function () {
            return name;
        },
        getOrder: function () {
            return order;
        },
        setSponsor:function (order1,name1) {
            order=order1;
            name=name1;
            return name;
        }
    };
})

在第一页:

app.controller('sponsors', function($scope,$http,Sponsor) {
...
     $scope.sponsorSelect=Sponsor.getName;
     $scope.sponsorSelect=Sponsor.setSponsor(order,name);
     window.open('./../hhh/kkk.html');
}

第二个

app.controller('studyManagerControll', function($scope,$http,Sponsor)
{
...
$scope.sponsor=Sponsor.getName;
}

如何才能成功共享数据?

p.s
我尝试过:服务并返回对象:赞助商={}..赞助商.get..{}并返回赞助商。

【问题讨论】:

  • 你的意思是第二个控制器中的$scope.sponsor = Sponsor.getName();
  • 是的,在 HTML 代码中它看起来:{{sponsor()}}
  • window.open('./../hhh/kkk.html'); 中你有喜欢的另一个 Angular 应用吗?
  • 是的,此页面打开成功!问题在于共享数据,它显示了默认数据。喜欢不更新
  • 显然不能共享。你必须使用一些持久层,比如 localStorage。

标签: angularjs


【解决方案1】:

你的 getname 不是属性,它是你首先需要用它附加大括号的方法

喜欢

 $scope.sponsor=Sponsor.getName();

【讨论】:

  • 在 HTML 代码中我写了 {{sponsor()}}。我已经尝试了这两种方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
相关资源
最近更新 更多