ui-router


//<div ui-view="view1"></div> function sampleUiRouter() { $stateProvider.state("sample", { url: "/contacts/:category/{id:int}?myParam1&myParam2", reloadOnSearch: false, //配合 $location.search("page", value) 好用 params: {}, //用來作default params 很不錯 title: "", //本身的擴展 (在$stateChange時替換document.title) getTitle: function (stateParams) { //title 的動態版本 return "分類: " + stateParams.categoryName; }, data: { customData1: 44 }, views: { 'view1': { resolve: { data: ["$http", "stateParams", function ($http, stateParams) { return $http({ url: "", method: "get" }); }] }, controllerAs: "xxScope", controller: ["$scope", "data", "$state", "$stateParams", function ($scope, data, $state, $stateParams) { log($state.current.data.customData1) }], controllerProvider: ["$stateParams", function ($stateParams) { var ctrlName = $stateParams.type + "Controller"; return ctrlName; }], templateProvider: ["$stateParams", function ($timeout, $stateParams) { return $timeout(function () { return '<h1>' + $stateParams.contactId + '</h1>' }, 100); }], templateUrl: function (stateParams) { } } }, }); }

 

參考 : https://github.com/angular-ui/ui-router/wikigit

 

更新 : 2015-10-18angularjs

在 $stateChangeStart 時若是要作 redirect ,要先 event.preventDefault(); $state.go(x); 若是沒有preventDefault 它會先去了a 再去 b.github

$state 也是監聽 $locationChange 的 ide

 

 

更新 : 2015-10-23ui

經常使用的東東 : url

1. 按 <a> 添加或移除 url params spa

 添加 <a ui-sref="{ page: 2 }">add page</a> code

   移除 <a ui-sref="{ page: undefined }">remove page</a>  或者  <a ui-sref="{ page: '' }">remove page</a>router

 

2. 動態state and params blog

 refer : http://stackoverflow.com/questions/24349731/dynamically-set-the-value-of-ui-sref-angularjs

   萬能 way : <a ng-href="{{ $state.href( stateName, stateParams ) }}" >add page</a>

   動態 params only : <a ui-href="{{ $state.href( stateName, stateParams ) }}" >add page</a>

相關文章
相關標籤/搜索