在這裏就不介紹AngularJS是什麼了,直接進入正題吧!
背景:公司做一個簡單的單頁面的後臺管理,說試一下AngularJS。我就接手了,在此記錄爬坑過程。
1. 使用頁面跳轉時的參數傳遞。
頁面
<button class="btn btn-sm btn-info btn-outline" href="javascript:" ng-click="detils(tender.projectCode);">項目詳情
</button>
controller js方法
$scope.detils = function (projectCode) {
$state.go("main.detils", {projectCode: projectCode});
};
路由配置,要注意params: {projectCode: null},必須要加上,不然獲取不到數據
app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('main', {
url: '/main',
templateUrl: 'pages/main.html'
})
.state('main.work', {
url: '/work',
templateUrl: 'pages/work.html'
})
.state('main.detils', {
url: '/detils',
params: {projectCode: null},
templateUrl: 'pages/detils.html'
})
}]);
目標頁面使用參數,注意$stateParams 參數必須要加入到controller的入參中
/**
* 獲取業務對象信息
*/
$scope.tenderInfo = function () {
var projectCode = $stateParams.projectCode;
$http.post(prefix+'/getTenderInfo', JSON.stringify({
projectCode: projectCode,
entityName: $scope.tenderTab,
send:$scope.send
})).then(function (response) {
if (angular.isDefined(response) && angular.isDefined(response.data)) {
var data = response.data;
var content = data.tenderList.content;
$scope.viewColumnList = data.viewColumnList;
$scope.tenderList = content;
}
});
};
2. 點擊頁面按鈕,把當前按鈕置灰
頁面
<button ng-show="tender.success==false" class="btn btn-sm btn-info btn-outline" href="javascript:"
ng-click="sendMessage($event,tender.id);">上傳
</button>
controller js方法,其中$event就是當前點擊的事件
/**
* 上傳
* @param $event 當前點擊事件
* @param entityId 業務對象ID
*/
$scope.sendMessage = function ($event,entityId) {
//獲取點擊對象,並添加“disable”
$($event.target).addClass("disabled");
$http.post(prefix+'/sendMessage', JSON.stringify({
entityId: entityId,
entityName: $scope.tenderTab
})).then(function (response) {
if (angular.isDefined(response) && angular.isDefined(response.data)) {
toaster.pop('info', "提示信息", response.data.msg);
$scope.tenderInfo();
}
});
};