Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 - Fatal编程技术网

Angularjs 在数据库中存储和访问数据对象的最佳做法

Angularjs 在数据库中存储和访问数据对象的最佳做法,angularjs,Angularjs,我有一个返回对象列表的json端点。第一个视图是一个仅包含一些基本信息的列表,但如果您选择一个项目,我希望显示更多详细信息。我是否应该在我的工厂中构建和对象,并使用另一种方法来获取细节?所以 getItems() // returns list data getItem(id)// goes through the object already retrieved and returns just the data? 我不想为每一个项目再次点击服务器,但我不确定最好的方法是什么。看起来这个模型

我有一个返回对象列表的json端点。第一个视图是一个仅包含一些基本信息的列表,但如果您选择一个项目,我希望显示更多详细信息。我是否应该在我的工厂中构建和对象,并使用另一种方法来获取细节?所以

getItems() // returns list data
getItem(id)// goes through the object already retrieved and returns just the data?
我不想为每一个项目再次点击服务器,但我不确定最好的方法是什么。看起来这个模型不是为这个角度设计的


另外,假设该项具有我可能需要发出另一个服务器请求的其他信息。本地存储此信息的最佳方式是什么?如果我已经获取了这些详细信息,就不需要再次获取这些详细信息了?

如果您想在两个控制器之间交换数据,可以使用提供程序

App.provider('Data', function() {

//Properties declaration
this.info = '';
//Setters
this.setInfo = function(info) {
    this.info = info;
};
//Getters
this.getInfo = function() {
    return this.info;
};
控制器1

App.controller(
    'controller1',
    ['$scope', 'Data',
        function($scope, Data) { Data.setInfo('here you put what you want') }]);
获取信息的控制器

App.controller(
    'controller2',
    ['$scope', 'Data',
        function($scope, Data) { Data.getInfo() }]);

更可能的情况是,您希望使用工厂或服务:


在这两种情况下,您都提供了一个函数,Angular将调用该函数一次并存储返回引用,然后将该引用提供给请求它的任何控制器或其他Angular托管对象。工厂和服务之间的区别在于,服务函数应该是一个构造函数(使用“new”关键字调用),而工厂只是作为一个常规函数使用服务调用。然而,在我看来,你们的问题似乎是离题的,因为这需要讨论,而且主要是基于观点。