AngularJS:在hashchange上轮询$resource

AngularJS:在hashchange上轮询$resource,angularjs,Angularjs,好的,我有一个角度模块,可以在pageload上正常工作,它的url类似于site.com#/catalog/1234。$resources在重载时为视图获取数据,而不是在hashchange时 我需要添加什么才能使hashchange触发新的获取 angular.module('Catalog', ['ngResource']) .config( function( $routeProvider, $locationProvider ) { $routeProvider

好的,我有一个角度模块,可以在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();
});

您为服务设置的标准绑定是否会让您感到困惑

我会按照下面的方法修改你的代码,也许你可以试试

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

我还删除了一些只重复默认值的代码。让我知道它是否有效。

您所说的hashchange到底是什么意思?我认为您不能将$routeParams真正注入到服务声明中。只有控制器。@blesh是正确的。但是,您可以注入$route并通过$route.current访问当前参数。我认为这可能是正确的$routeParams实际上是由控制器而不是服务使用的。但是,您在服务声明中留下了一个$routeParams,它可以消失。谢谢,它很有魅力$路线图是为管制员准备的-必须记住这一点。再次感谢@哦,是的,你是对的:)不需要$routeParams!谢谢