angularjs常見頁面查詢功能
阿新 • • 發佈:2019-01-06
2016年9月28日。
昨天學習瞭如何用mongoose寫後端資料單一資料&組合資料的介面,今天便來講講如何根據後端寫好的介面,來寫前端資料介面,獲取資料並進行查詢。
查詢出來的資料大概就是這樣一個顯示方式,查詢也就是簡單的input輸入框
此時第一步需要在service中獲取資料:
第二步:路由router,寫入引數paramsgetidnum: function (idnum) { var deferred = $q.defer(); var url = 'http://localhost:3000/Wages/QueryWagesByIdnum'; $http({ method: 'POST', url: url, data: {idnum: idnum} }).success(function (data, status, headers, config) { // console.log('getProvince===='+JSON.stringify(data)); deferred.resolve(data); }).error(function (data, status, headers, config) { deferred.reject(status); }); return deferred.promise; }
.state('dashboard.wages',{
templateUrl:'views/wages.html',
url:'/wages'
})
.state('dashboard.wageslist',{
templateUrl:'views/wageslist.html',
url:'/wageslist',
params:{data:null}
})
第三步:點選函式search,傳遞引數
$scope.search=function () { $state.go('dashboard.wageslist',{data:$scope.idnum}); };
在表格資料顯示頁面做以下操作,其中getidnum就是寫好的資料介面
$scope.idnum = $stateParams.data;
$scope.loadData = function () {
wages.getidnum($scope.idnum).then(function (data) {
$scope.wagelist= data;
});
};
$scope.loadData();
這樣,就已經根據傳遞的引數,來獲取到顯示在表格中的資料。
現在寫起來還覺得挺簡單的,不管是前端還是後端基本上所要處理的資料都差不多一樣~~~
還有一種組合的多個條件來查詢資料的,其實類似的寫法,只不過是需要傳遞多個引數
getname: function (name,type,time) {
var deferred = $q.defer();
var url = 'http://localhost:3000/Budget/QueryBudgetByName';
$http({
method: 'POST',
url: url,
data: {name: name,
type:type,
time:time
}
}).success(function (data, status, headers, config) {
// console.log('getProvince===='+JSON.stringify(data));
deferred.resolve(data);
}).error(function (data, status, headers, config) {
deferred.reject(status);
});
return deferred.promise;
}
router
.state('dashboard.budgetlist',{
templateUrl:'views/budgetlist.html',
url:'/yusuanlist',
params:{name:null,
type:null,
time:null
}
search函式,傳遞三個引數
$scope.search=function () {
$state.go('dashboard.budgetlist',{name:$scope.name,type:$scope.type,time:$scope.time});
};
表格顯示頁面,budgetslist為前端ng-repeat的陣列,我這裡從資料庫中得到的資料格式為YYYYMM,但h5中所提供的input type資料格式為date:YYYY-MM,所以使用到了js中的replace方法。
$scope.name=$stateParams.name;
$scope.type=$stateParams.type;
$scope.time=$stateParams.time;
$scope.loadData = function () {
if (!$socpe.name || !$scope.type|| !$scope.time) return;
var time = $scope.time.replace('-','');
budget.getname($scope.name, $scope.type,time).then(function (data) {
$scope.budgetslist = data;
});
};
$scope.loadData();
前臺輸出{{}}繫結輸入即可。
好睏好睏,我要去衝杯咖啡