11265


$resourceを利用して、JSONに記述した設定値を取得するとき、  
非同期であるため、$resourceの戻り値が解決されません。  
$resourceの$primiseにはresolveも無いので、どのように解決しますか？

[code]

    myApp.factory('prop', function($resource) {
      return {
        getSetting: function(key) {
          var res = $resource('setting.json').query();
          return res.key;
        }
      }
    });
    
[/code]

* * *

非同期を同期にするのは難しそうなので、下記のようにしてkeyに対する値を非同期で返すことにしようと思います。

[code]

    myApp.factory('prop', function($resource) {
      return {
        getSetting: function(key) {
          return $resource('setting.json').query().$promise.then(function(res) {
            return res[key];
          }
        }
      }
    });
    
[/code]


CC BY-SA 3.0
2015-06-11T08:06:12.813
11253
2015-06-12T06:24:31.187
2015-06-12T06:24:31.187
9790
9790
question
angularjs
AnularJS $resource の取得値のresolveについて


非同期で取得するのなら、上記のソースで言うと、query関数のコールバックまたはres.$promise.thenでJSONが取得されていることが確定するので、その中で処理するのはいかがでしょうか。

同期的に処理するのは少し難しいと思います。  
[AngularJSのngResourceで同期処理](https://ja.stackoverflow.com/questions/8405/angularjs%E3%81%AEngresource%E3%81%A7%E5%90%8C%E6%9C%9F%E5%87%A6%E7%90%86)  
こちらで質問させて頂いて一応同期的に処理するのは可能でしたが、少し仕掛けが必要でした。


CC BY-SA 3.0
2015-06-12T01:29:18.087
11265
2015-06-12T01:29:18.087
2017-04-13T12:52:39.113
-1
2232
11253
answer