我有两个功能。完成后我想使用then方法调用下一个。我无法使结构正确。
成功方法
self.Read_Data = function () {
return Ajax.Get({
url: READ_DATA,
success: function (data)
{
self.Orderdata = data.data;
}
, error: function (result, status, headers) {
}
});
}
self.Read_Data()
然后方法 - 另一个函数
self.CopyOrderData = function () {
self.CurrentData = [];
for (var i = 0; i < self.Orderdata.length; i++)
{
self.CopyOrderData = { Checked: 0,OrderNumber: self.Orderdata[i].OrderNumber, OrderName: self.Orderdata[i].Name };
};
return
}
如何将CopyOrderData
函数合并为Read_data()
的<{1}}?
我尝试的是这个(但它不起作用):
self.Read_data().then=function(){
self.CurrentData = [];
for (var i = 0; i < self.Orderdata.length; i++)
{
self.CurrentData = { Checked: 0,OrderNumber: self.Orderdata[i].OrderNumber, OrderName: self.Orderdata[i].Name };
};
return
}
}
所以基本上我有一个函数,我加载数据然后我想将数据复制到另一个数组。
答案 0 :(得分:2)
试试这个
self.Read_data().then(function(){
self.CurrentData = [];
for (var i = 0; i < self.Orderdata.length; i++)
{
self.CurrentData = { Checked: 0,OrderNumber: self.Orderdata[i].OrderNumber, OrderName: self.Orderdata[i].Name };
}
return
});
答案 1 :(得分:2)
为什么不简单地在成功处理程序中移动CopyOrderData()
的内容?
self.Read_Data = function () {
return Ajax.Get({
url: READ_DATA,
success: function (data)
{
self.Orderdata = data.data;
self.CurrentData = [];
for (var i = 0; i < self.Orderdata.length; i++)
{
self.CopyOrderData = { Checked: 0,
OrderNumber:self.Orderdata[i].OrderNumber,
OrderName: self.Orderdata[i].Name };
};
}
, error: function (result, status, headers) {
}
});
}
self.Read_Data()
更轻松的说,它不是做事的角度方式。您应该使用$ http服务(或$ resource)来进行REST调用。等等,
$http.get(READ_DATA).then(function(data){
//do stuff with 'data'
});
很开始。或者,您也可以使用单独的成功和错误处理程序。
self.Read_Data = function () {
return $http.get(READ_DATA)
}
并处理像
这样的回复Read_Data().then(function(){
//success_handler
},function(err){
//error_handler
}
);
或
Read_Data().success(function(){
//success_handler
}).error(function(err){
//error_handler
});
干杯!