好的,所以我有一个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();
});
答案 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});
});
我还删除了一些只重复默认值的代码。如果有效,请告诉我。