我有以下输入:
<input type="text" name="name" ng-change="vm.myMethod(term)" ng-minlength="3" ng-model="term" class="form-control" placeholder="Please Enter name or username" aria-describedby="basic-addon1" autofocus>
myMethod的方法如下:
function myMetod(term) {
if(term.length > 0) {
return myService.findUsersByTerm(term).then(function (response) {
...
}
如果我在输入中输入了一个名字,然后我删除了最后一个字母,那么它工作得很好,然后我收到错误:
错误:术语未定义
为了防止出现此错误,我该怎么办? 非常感谢!
[编辑]
这是我的控制者:
(function() {
'use strict';
angular
.module('project.management')
.controller('ManagementController', ManagementController);
ManagementController.$inject = ['$scope', 'searchUserService', ...];
function ManagementController($scope, searchUserService, userService, institutionUserConnectionService) {
$scope.vm = this; // assumes controllerAs: vm
var vm = this;
vm.searchUserService = searchUserService;
vm.showUserProperties = false;
vm.searchUsersByTerm = searchUsersByTerm;
vm.getSelectedUserProperties = getSelectedUserProperties;
////////////
function searchUsersByTerm(term) {
vm.showUserProperties = false;
return searchUserService.findUsersByTerm(term).then(function (response) {
vm.searchResult = response.data;
}).catch(function () {
...
});
}
...
};
})();
答案 0 :(得分:0)
将术语定义为
$scope.term; // or this.term
function myMetod(term) {
if(term.length > 0) {
return myService.findUsersByTerm(term).then(function (response) {
...
}