Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-存储数据,工厂_Angularjs_Angularjs Factory - Fatal编程技术网

AngularJS-存储数据,工厂

AngularJS-存储数据,工厂,angularjs,angularjs-factory,Angularjs,Angularjs Factory,下午好, 上周我们一直在学习AngularJS,需要一些指导,我们希望能够在路由之间存储用户名、品牌名和产品名称等数据。目前,我们正在使用routeParams,但发现这是一个痛苦的重复代码一遍又一遍 在第3节中,我们有formData,这是我们在工厂中存储这些数据的一种方式吗?这样我们可以在提交最终数据之前在品牌之间切换并更新产品?当我们离开每个品牌时,它会删除我们输入的数据 如果有人能帮忙我们会非常感激, 多谢各位 范例 这里有一个可行的解决方案。创建一个在控制器之间共享数据的服务。它使用$

下午好,

上周我们一直在学习AngularJS,需要一些指导,我们希望能够在路由之间存储用户名、品牌名和产品名称等数据。目前,我们正在使用routeParams,但发现这是一个痛苦的重复代码一遍又一遍

在第3节中,我们有formData,这是我们在工厂中存储这些数据的一种方式吗?这样我们可以在提交最终数据之前在品牌之间切换并更新产品?当我们离开每个品牌时,它会删除我们输入的数据

如果有人能帮忙我们会非常感激, 多谢各位

范例


这里有一个可行的解决方案。创建一个在控制器之间共享数据的服务。它使用$watch,因此可能不是最有说服力的解决方案。我也在学习,这样我才能感受到你的痛苦:-

  myApp.factory('DataService', function () {
    var myObject = {
        id: 0, name: 'not set'
    };

    return {
       brandName: function () {
          return myObject.name;
        },
        setBrandName: function (brand) {
          myObject.name = brand.name;
        }
     };

   });

您可以构建对象以更好地反映您的需求。谷歌这有很多文章提供解决方案。希望这有帮助。查看此插件:转到2并选择一个品牌。您会注意到另外两个正在更新所选物品。

如果您可以设置一个plunker,您可能会获得更多点击率。@Willopez这里是我们的Plnkr仅供参考的“Black and Decker”当前有效:我在下面提供了一个plunker,可以为您提供所需的物品。另外,请查看它提供了另一种使用$broadcast的替代方案远离$rootScope解决方案
  myApp.factory('DataService', function () {
    var myObject = {
        id: 0, name: 'not set'
    };

    return {
       brandName: function () {
          return myObject.name;
        },
        setBrandName: function (brand) {
          myObject.name = brand.name;
        }
     };

   });