Angular最佳实践(在这种情况下)用于在控制器之间传递数据 - service或routeParams?

时间:2014-02-18 16:16:35

标签: javascript angularjs angularjs-service angularjs-routing

我是AngularJS的新手,我之前已经意识到这个问题(所以希望我不会被拒绝),但我一直无法找到符合我情况的问题。

我想将搜索数据(大约4个字段)从搜索页面(My HomeCtrl)传递给ListingCtrl。 listingCtrl已经使用工厂/服务来获取基于从API传递的内容的信息(我目前已对数据进行了硬编码)。

现在我读到的所有内容都使用另一台服务器/ facotry在搜索页面和列表页面之间传递数据但是(如果我遗漏了某些内容,请原谅我)为什么不将这些额外的参数传递给routeParams?

你需要知道 - 我正在使用partials和route params在应用程序中导航并在页面之间传递一些简单的ID。

1 个答案:

答案 0 :(得分:3)

我建议使用服务。

如果您想要库存持久性数据,我建议您使用此https://github.com/Zmetser/localstorageservice

此模块使用localStoragedocumentation)(如果您使用IE,则使用Cookie)

未经测试的例子:

服务

myApp.service('controllerSharingData', function() {
  var __variables = {};

  return {
   get: function(varname) {
    return (typeof __variables[varname] !== 'undefined') ? __variables[varname] : false;
   },
   set: function(varname, value) {
    __variables[varname] = value;
   }
  };
});

<强>控制器

myApp.controller('IndexCtrl', function($scope, controllerSharingData) {
  controllerSharingData.set('toto', 'hello world');
});

myApp.controller('ListCtrl', function($scope, controllerSharingData) {
  alert(controllerSharingData.get('toto'));
});