情况如下,我有以下几点: - 输入字段,我在其中输入ng-model ='user_name'的用户名。 - 一个按钮,ng-click =“queryUserLogs(user_name,$ event) - 当我输入用户名并单击按钮时,将调用我的控制器中定义的以下方法:
// un: username
$scope.queryUserLogs = function(un, $event){
if(typeof $scope.user_name !== 'undefined'){
var transaction_id = gen_uuid();
$scope.$watch("user_name", function (newVal, oldVal) {
if($event.type === "click"){
console.log("Reloading...");
$scope.tableParams.reload();
delete $event.type;
}
});
$scope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10, // count per page
}, {
total: 0,
getData: function($defer, params) {
BI.get({userName: $scope.user_name, page: params.page(), count: params.count()}, function(data) {
// set new data
$scope.basicInfos = data.results;
params.total(data.count);
$scope.showLogs = true;
$defer.resolve(data.results.slice((params.page() - 1) * params.count(), params.page() * params.count()));
});
},
$scope: { $data: {} }
});
} else {
console.log("Username is empty!");
}
}
当我更改用户名并单击按钮时,控制台中会出现以下错误:
TypeError: undefined is not a function
at http://localhost:8000/static/js/ng-table.min.js:414:33
at u (http://localhost:8000/static/js/angular.min.js:97:280)
at http://localhost:8000/static/js/angular.min.js:98:417
at h.$eval (http://localhost:8000/static/js/angular.min.js:108:482)
at h.$digest (http://localhost:8000/static/js/angular.min.js:106:62)
at h.$apply (http://localhost:8000/static/js/angular.min.js:109:287)
at f (http://localhost:8000/static/js/angular.min.js:71:247)
at F (http://localhost:8000/static/js/angular.min.js:75:408)
at XMLHttpRequest.x.onreadystatechange (http://localhost:8000/static/js/angular.min.js:76:457)
新数据实际上已成功检索,但分页停止工作,如果第一个查询的用户名说4页,第二个只有一页,则第二个查询中的分页保持为4页节。
PS:ngTable被添加到控制器依赖项中。