我是AngularJs的新手。任何人都可以幫助編寫一個工廠,使用http服務在angularJS中,以便工廠返回給我一個業務對象而不是promise,或者在成功時爲scope變量賦值。我在網上研究了很多文章,但都使用回調函數或通過返回http服務的承諾。
要求:假設XMLtoJsonService是我的工廠,它將xml從本地文件夾轉換爲json。工廠應返回的業務對象,這樣在我的控制,我應該能夠在以下方式使用如何從工廠使用http返回業務對象get angularjs
//controller
var obj = XMLtoJsonService.MethodName();
**(No promises or callback function should be used in controller)**
/*******service code****************/
App.factory('XmlToJsonSvc',
[ '$http', function($http) {
return {
get : function(path, callback) {
$http.get(path, {
transformResponse : function(data) {
// convert the data to JSON and provide
// it to the success function below
var x2js = new X2JS();
var json = x2js.xml_str2json(data);
return json;
}
}).success(function(data, status) {
//console.log('Sucess');
callback(data);
})
}
}
} ]);
/*********Controller Code **********/
var setData = function(data) {
return new Menus(data);
debugger
}
var path = "Configs/Config.xml";
XmlToJsonSvc.get(path, setData);
//此代碼工作正常 //但我的要求是把這段代碼轉換,這樣在我的控制器它應該像// VAR OBJ = XmlToJsonSvc.get(路徑) // OBJ應該有,我會使用其他服務
所以你打算阻止整個BR JSON對象owser等待http響應? –
不,但我想使用可以返回給我一個業務對象的服務。我基於從服務返回的json對象初始化對象。 – ceepee
然後你應該承諾解決你的服務。它可能工作。 – SayusiAndo