1

このモジュールとコントローラを考えると

angular.module('contactServices', ['ngResource']).
factory('ApiKey', function ($resource) {
    return $resource('/V1/apikeys', {}, {
        query: {method: 'GET', params: {}, isArray: false}
    });
});

function ContactCtrl($scope, ApiKey) {
    $scope.keys = ApiKey.query();
}

このデータを返す

{ myObject: [{ id: "1", value: "Value1" }, { id: "2", value: "Value2" },    { id: "3", value: "Value3" }] }

このhtml要素に

<select style="width:350px;" tabindex="2">
    <option ng-repeat="k in keys" value="{{k.id}}" >{{k.value}}</option>
</select>

ページが読み込まれると、リソースはデータを取得しますが、概念的に理解しているプロミスを返し、(ページの読み込みよりも後で) データが返されたことを確認できますが、select は読み込まれません。ある時点で、私は $http サービスを使用してこれを機能させていましたが、それは少し前のことであり、可能であればリソースの抽象化を使用したいと思っています。

ありがとう、スティーブン

アップデート

ここのコメントに基づいて、更新された実用的な例があります。実際の修正は、json オブジェクトを取得して apiKeys オブジェクトを探すことでした。

<select ng-model="keys" ng-options="k.value for k in keys"></select>


function ContactCtrl($scope, ApiKey) {
    ApiKey.query({}, function (data) {
        $scope.keys = data.apiKeys; <<<<<<<<<<========= the fix
    });
}
4

1 に答える 1

1

サービス層を呼び出すときに、コードを次のように変更してみてください。

    function ContactCtrl($scope, ApiKey) {
        ApiKey.query({}, function(data){
        $scope.keys = data;
      });
    }

バスカラ

于 2013-05-31T16:21:04.883 に答える