Javascript 使用watch Angularjs隐藏自动完成项
我正在尝试使用$scope.watch制作一个自动完成,它工作得很好,但是当我选择一个选项,在项目中单击时,它会显示在输入中,但项目不会隐藏,因为当我将其显示在输入中时,手表会再次激活 我不知道如何隐藏项目时,我选择了它的一个 任何帮助Javascript 使用watch Angularjs隐藏自动完成项,javascript,angularjs,watch,angularjs-watch,Javascript,Angularjs,Watch,Angularjs Watch,我正在尝试使用$scope.watch制作一个自动完成,它工作得很好,但是当我选择一个选项,在项目中单击时,它会显示在输入中,但项目不会隐藏,因为当我将其显示在输入中时,手表会再次激活 我不知道如何隐藏项目时,我选择了它的一个 任何帮助 <input type="text" ng-model="selected" /> <ul class="listFavoInbox"> <li ng-repeat="favo in resultAuto" ng-click
<input type="text" ng-model="selected" />
<ul class="listFavoInbox">
<li ng-repeat="favo in resultAuto" ng-click="itemFavoInbox(favo.first,favo.id)">
{{favo.first}}
</li>
</ul>
-
{{favo.first}
$scope.selected=”“;
$scope.arrayFavo=[
{'id':1,'first':'John','last':'Depp',age':52,'gender':'male'},
{'id':2,'first':'Sally','last':'JoHanson','age':13,'gender':'female'},
{'id':3,'first':'Taylor','last':'Swift','age':22,'gender':'female'},
];
$scope.$watch('selected',function(){
$scope.resultuto=[];
对于(var i=0;i您可以使用ng hide=true;
单击itemFavoInbox()时;
当watcher将激活时为false您不需要为此使用$watch()
。使用
-
{{favo.first}
或过滤器:{first:selected}
用于所选字段
好的,这很好,但我真正的问题是,当我选择项目时,我需要隐藏项目列表,这是我的问题。
$scope.selected = "";
$scope.arrayFavo = [
{'id': 1, 'first': 'John', 'last': 'Depp', 'age':52, 'gender':'male'},
{'id': 2, 'first': 'Sally', 'last': 'JoHanson', 'age':13, 'gender':'female'},
{'id': 3, 'first': 'Taylor', 'last': 'Swift', 'age':22, 'gender':'female'},
];
$scope.$watch('selected', function() {
$scope.resultAuto = [];
for(var i=0; i<$scope.arrayFavo.length; i++){
var text = angular.lowercase($scope.arrayFavo[i].first);
var search = angular.lowercase($scope.selected);
// console.log("text array",text);
// console.log("text",$scope.selected);
if ( search != "" ){
if ( text.indexOf(search) !== -1 ){
$scope.resultAuto.push($scope.arrayFavo[i]);
}
console.log($scope.resultAuto);
}
}
});
$scope.itemFavoInbox = function (name,id){
$scope.selected = name;
$scope.resultAuto = "";
}
<input type="text" ng-model="selected" />
<ul class="listFavoInbox">
<li ng-repeat="favo in arrayFavo | filter:selected" ng-click="itemFavoInbox(favo.first,favo.id)">
{{favo.first}}
</li>
</ul>