1

好的,所以我有一个 Angular 模块在页面加载时按预期工作 - 使用类似 site.com#/catalog/1234 的 URL。$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();
});
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 回答