0

すべてが属性を持つ$resource配列を返すAngularがあるとします。属性に基づいてこれらのエントリのサブセットを抽出するために、Javascript (テンプレート内でAngular の構文を使用しない) で使用したいと思います。entriesname$filter {{ blah | filter:filter }}

コードは次のようになります。

app.controller('AppController', function ($scope, Project, $filter) {
    $scope.entries = Project.query();
    $scope.entry = $filter('filter')($scope.entries, {name: 'Bar'});
    ...
}

ただし、このjsFiddle hereに示されているように、スニペットは意図したとおりに機能しません。XHR が完了するとentry、何が非同期に入力されるかに関係なく、空の配列が含まれます。entriesa の設定$scope.$watchも機能しません。

entryデータが入力されたときにフィルターに従って更新したいentries。これどうやってするの?

4

1 に答える 1

0

さて、もう少し実験を行ったところ、呼び出しにコールバックを提供することでこれを実行できることがわかりましたsuccessquery()

app.controller('AppController', function ($scope, Project, $filter) {
    $scope.entries = Project.query({}, function() {
        $scope.entry = $filter('filter')($scope.entries, {name: 'Bar'});
    });
    ...
}

更新された jsFiddleを参照してください。

于 2013-03-07T14:12:48.973 に答える