无法在angularjs中的页面之间传递数据 - 包括plunker

时间:2015-04-17 00:42:58

标签: angularjs angularjs-directive angularjs-scope

我试图在两个页面之间传递数据。我正在从第1页到第2页发送"hello world"字符串,但我没有成功通过它。

请让我知道我做错了什么。

请参阅this plunker

提前致谢

3 个答案:

答案 0 :(得分:2)

Angular是专为单页面应用程序设计的,虽然还有其他非Angular方法可以实现,但它无法在多个页面之间传递数据。相反,您应该使用ngRouterui-router

等路由器

这将允许您在应用中创建深层链接,您可以使用Angular的服务和内置功能在它们之间传递数据。

http://plnkr.co/edit/iruMWNAV4AFdB4tFWzBR

只有在您需要深层链接时才需要这样做。否则,您可以通过其他方式更新页面显示,例如使用ng-if

答案 1 :(得分:1)

尝试在$ rootScope中保存变量

答案 2 :(得分:1)

通常在页面之间共享数据(我假设每个页面都有自己的控制器)

我想到的两种方法,

场景1:包含父子关系的两个页面

<div ng-controller="ParentController as prntController">
       <div ng-controller="ChildController as chldController"></div>
</div>

在这种情况下,ChildController始终访问父类的数据(或范围),如

$scope.parentData = $scope.$parent.parentData;

场景2:两个页面是独立的 - 创建工厂以共享数据(最佳方法IMO)

分享数据的最佳方式是创建工厂

app.factory('sharedData', function() {
 return {};
}

app.controller('ParentController', function ($scope, sharedData) {
   sharedData.parentData = 'Im parent';
});

 app.controller('ChildController', function ($scope, sharedData) {
  //can access parent data like below
  $scope.data = shareddata.parentData;
});