まず、私はフロントエンド開発では新しいと言う必要があるので、詳細の回答は非常に役に立ちます。私はページング問題のためにui-routingを使用しようとしています。実際には、URLにクエリパラメータを追加したいと思います。これは私のコードです:ui-routingによるページング。戻る(次の)ブラウザボタンがコントローラを再ロードしない
angular.module('simpleApp', [
'ngAnimate',
'ui.router'
]).config(function ($locationProvider, $stateProvider, $stateProvider, $urlRouterProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false,
rewriteLinks: false
});
$stateProvider.state('productList', {
url: '?page',
controller: 'productPartialController',
params: {
page: {
value: '1',
squash: true
}
}
});
}); ご覧のとおり、初期化です。 これは、コントローラロジックの一部です:
angular.module('simpleApp')
.controller('productPartialController', ['$scope', 'productService', 'productPartialService', '$compile', '$sce', '$window', '$timeout', '$stateParams', '$state', function ($scope, productService, productPartialService, $compile, $sce, $window, $timeout, $stateParams, $state) {
var p = parseInt($stateParams.page);
console.log(p);
$scope.processQuery = function (page) {
if (page)
$scope.pagerSettings.CurrentPage = page;
productPartialService.getFilterPageData({
/*ajax params*/
sortBy: $scope.pagerSettings.SortBy,
currentPage: $scope.pagerSettings.CurrentPage,
}).success(function (products) {
$scope.products = products;
processProducts();
calculatePages();
utils.ToTopScroll();
if(page)
$state.go('productList', { page: $scope.pagerSettings.CurrentPage }, { notify: false });
console.log($stateParams.page);
});
};
}]);
私は(たとえばhelloworldsite.loc/phones/samsung
用)いくつかのURLをnon rest
プロジェクトとロードページのための機能を追加しようとしています。私がページングURLの変更を処理するとき、期待通りにhelloworldsite.loc/phones/samsung?page=4 (if $scope.pagerSettings.CurrentPage is 4), helloworldsite.loc/phones/samsung?page=3 (when $scope.pagerSettings.CurrentPage is 3), etc
。私は別のページ(ページは異なるurls
- helloworldsite.loc/phones/samsung、helloworldsite.loc /アクセサリーなど)にこのコードを使用したいと言いたいので、私が理解するように、urlは絶対的でなければなりません。問題は、私がback-next
ブラウザボタンをクリックしようとしたときに起こります。重要:このサンプルを使用しようとしました:http://www.codelord.net/2015/06/20/simple-pagination-and-url-params-with-ui-router/とコードサンプルhttps://gist.github.com/abyx/f5ef04d807dc15617331このサンプルは完璧に動作しています。私はback-next
ブラウザボタンをクリックしたときコントローラがリロードされるが、私のコントローラはそうではないことを意味する。また、私はNoN
代わりの1
受けるinitalのparam(
params: {
page: {
value: '1',
squash: true
}
}
)を取得しようとします。私は間違って何をしていますか?誰も私がどのように動作する必要がありますstate
を説明することができますか?私はドキュメントの一部を読んで、一般にui-routing
とHistory API
と約という文脈について実際に混乱しました。状態はリロードすることはありませんように
$state.go('productList', { page: $scope.pagerSettings.CurrentPage }, { notify: false });
notify: false
は、解雇されてから$stateChangeStart
と$stateChangeSuccess
イベントを防ぐ:
ありがとう、ライアン、それは助けにはなりません。 {notify:false}が削除され、((( –