我有一项接受四种不同http请求的服务。 但返回相同的数据模型(不同的数据,但相同的模型结构)。 我需要在某处保存服务和某些特定数据的结果。 我需要一个建议如何在我的javascript角度代码中实现它。
我实现这种方式: (创建一个工厂,返回保存结果和特定数据的新类实例)。
app.factory('myFactory', function () {
var myDataModel = function (name) {
var self = this;
self.name = name;
self.results = [];
self.isSearching = false;
self.get = function (id) {
self.isSearching = true;
$http.get('url' + '?name=' + self.name + '&id=' + id)
.then(function (data) {
self.results = data;
self.isSearching = false;
});
};
self.display = function () {
alert('the result of ' + self.id + ' is:' + self.results.join(', '));
};
};
return {
myDataModel: function () {
return new myDataModel();
}
};
});
我不认为这种方式是正确的'办法。 我想听听有关如何实现这一点的建议(也许是服务,也许是指令)?
非常感谢。
幼狮。
答案 0 :(得分:0)
我认为您创建服务的方式更适合服务而不是工厂,即使这样也可以。
我会像下面那样写我的工厂而不使用新的:
app.factory('myFactory', function () {
var myDataModel = {};
myDataModel.name = name;
myDataModel.results = [];
myDataModel.isSearching = false;
myDataModel.get = function (id) {
myDataModel.isSearching = true;
$http.get('url' + '?name=' + myDataModel.name + '&id=' + id)
.then(function (data) {
myDataModel.results = data;
myDataModel.isSearching = false;
});
};
myDataModel.display = function () {
alert('the result of ' + myDataModel.id + ' is:' + myDataModel.results.join(', '));
};
return myDataModel;
});