AngularJsの新機能です。ファクトリーをangleJSのhttpサービスを使って書くことができますか?ファクトリーではなく、ビジネスオブジェクトを返すようにして、成功の場合はスコープ変数に値を代入してください。私はウェブ上で非常に多くの記事を研究しましたが、すべてがコールバック関数を使用しているか、httpサービスからの約束を返しています。
要件: XMLtoJsonServiceがxmlをローカルフォルダからjsonに変換する私の工場であるとしましょう。私のコントローラで私が使用することができるはずように、工場出荷時にはこのコードは// 正常に動作しているしかし、私の要件は、私のコントローラになるようにこのコードを変換することですanglejsでhttp getを使用してファクトリからビジネスオブジェクトを返す方法
//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が、私は別のサービス
を使用することでしょうJSONオブジェクトを持っている必要がありますので、あなたが全体のBRを阻止する上で計画してくださいowserはhttp応答を保留していますか? –
いいえ私はビジネスオブジェクトを返すことができるサービスを使いたいと思います。私は、私がサービスから返すjsonオブジェクトに基づいてオブジェクトを初期化しています。 – ceepee
あなたのサービスに約束しておいてください。それはうまくいくかもしれない。 – SayusiAndo