1

わかりましたので、ページロードで意図したとおりに機能するAngularモジュールがあります-site.com#/catalog/1234のようなURLを使用します。$resources は、リロード時にビューのデータをフェッチしますが、ハッシュ変更ではフェッチしません。

hashchange を取得して新しいフェッチをトリガーするには、何を追加する必要がありますか?

angular.module('Catalog', ['ngResource'])
.config( function( $routeProvider, $locationProvider ) {
    $routeProvider
        .when( '/catalog/:categoryid', {
            controller: 'CatalogListCtrl',
            templateUrl:'/layout/responsive/html/catalogListView.html'
        })
        .otherwise( { redirectTo:'/' } );
})
.factory( 'CatalogList', function( $resource, $routeParams ) {
    var list = $resource('/test/products.json?query=:categoryid', { categoryid : $routeParams.categoryid },  {
            query: { method: 'GET', isArray : true }
    });
    return list;
})
.controller( 'CatalogListCtrl', function ( $scope, CatalogList ) {
    $scope.products = CatalogList.query();
});
4

1 に答える 1

2

サービスに設定した標準バインディングが角度を混乱させている可能性はありますか?

コードを次のように変更します。試してみてください。

angular.module('Catalog', ['ngResource'])
.config( function( $routeProvider, $locationProvider ) {
    $routeProvider
        .when( '/catalog/:categoryid', {
            controller: 'CatalogListCtrl',
            templateUrl:'/layout/responsive/html/catalogListView.html'
        })
        .otherwise( { redirectTo:'/' } );
})
.factory( 'CatalogList', function( $resource ) {
    return list = $resource('/test/products.json?query=:categoryid', {},  {});
})
.controller( 'CatalogListCtrl', function ( $scope, $routeParams, CatalogList ) {
    $scope.products = CatalogList.query({categoryid: $routeParams.categoryid});
});

また、デフォルト値を繰り返すだけのコードをいくつか削除しました。それが機能するかどうか教えてください。

于 2012-10-04T19:49:54.697 に答える