Angularjs 在数据库中存储和访问数据对象的最佳做法
我有一个返回对象列表的json端点。第一个视图是一个仅包含一些基本信息的列表,但如果您选择一个项目,我希望显示更多详细信息。我是否应该在我的工厂中构建和对象,并使用另一种方法来获取细节?所以Angularjs 在数据库中存储和访问数据对象的最佳做法,angularjs,Angularjs,我有一个返回对象列表的json端点。第一个视图是一个仅包含一些基本信息的列表,但如果您选择一个项目,我希望显示更多详细信息。我是否应该在我的工厂中构建和对象,并使用另一种方法来获取细节?所以 getItems() // returns list data getItem(id)// goes through the object already retrieved and returns just the data? 我不想为每一个项目再次点击服务器,但我不确定最好的方法是什么。看起来这个模型
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”关键字调用),而工厂只是作为一个常规函数使用服务调用。然而,在我看来,你们的问题似乎是离题的,因为这需要讨论,而且主要是基于观点。