AngularJS:在hashchange上轮询$资源

时间:2012-10-04 14:07:40

标签: angularjs

好的,所以我有一个Angular模块按照预期在pageload上工作 - 有一个url,比如site.com#/ catalog / 1234。 $ resources在重新加载时获取视图的数据,但不在hashchange上获取。

我需要添加什么才能让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();
});

1 个答案:

答案 0 :(得分:2)

您为服务设置的标准绑定是否会混淆angular?

我会按照以下方式更改您的代码,也许您可​​以尝试一下。

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});
});

我还删除了一些只重复默认值的代码。如果有效,请告诉我。