Javascript 如何在angular typeahead中获取上一个值
我在输入元素中使用了Javascript 如何在angular typeahead中获取上一个值,javascript,angularjs,Javascript,Angularjs,我在输入元素中使用了typeahead。更改时,我可以通过使用选择上的typeahead从$item获取当前值。如何获取上一个值 我已尝试ng单击设置旧值 <input type="text" ng-model="personDetail.brandchainname" typeahead-on-select="redeReferenceId($item, $model, $label, personDetail.id, oldValue)" ng-click="o
typeahead
。更改时,我可以通过使用选择上的typeahead
从$item
获取当前值。如何获取上一个值
我已尝试ng单击
设置旧值
<input type="text"
ng-model="personDetail.brandchainname"
typeahead-on-select="redeReferenceId($item, $model, $label, personDetail.id, oldValue)"
ng-click="oldValue = personDetail.brandchainname"
typeahead="data as data.name for data in brandChainNames | filter:$viewValue"
typeahead-editable= 'false'>
$scope.$watch('field', function (newVal, oldVal) {
// your task
}
但是,在
typeahead
中,您也可以通过退格来更改值,而这一次旧值仍将来自ng单击
,您可以使用$scope.watch获取新值和旧值
<input type="text"
ng-model="personDetail.brandchainname"
typeahead-on-select="redeReferenceId($item, $model, $label, personDetail.id, oldValue)"
ng-click="oldValue = personDetail.brandchainname"
typeahead="data as data.name for data in brandChainNames | filter:$viewValue"
typeahead-editable= 'false'>
$scope.$watch('field', function (newVal, oldVal) {
// your task
}
第一位为什么要使用oldvalue?必须从以前的值中取消引用
personDetail.id
,然后重新引用到新值中。我尝试在select=“redreferenceid($item,$model,$label,personDetail.id,oldvalue,clicked)”ng click=“oldvalue=personDetail.brandchainname;clicked=true;”然后在控制器中,$scope.redeferenceid=function(…){$scope.clicked=false;}
似乎此作用域与传递的作用域不同。创建一个会很困难。但是,我通过将单击
作为一个对象来解决这个问题ng click=“oldValue=personDetail.brandchainname;clicked={'value':true};”
然后我在控制器中将其设置为clicked.value=false;这帮助我区分单击事件和退格事件。从那以后,我通过使用保存prev和curr值的数组解决了prev值的问题。我通过使用ng blur解决了最后一个问题
ng blur=“util.isEmpty(personDetail.brandchainname)?redeferenceId($item,$model,$label,personDetail.id,oldValue),单击“brandchainnames”):“”“
在oldval/newVal
中提供各种值<代码>“,未定义的
等。当您在实际选择值之前部分键入时激发。为此编写代码被证明是非常困难和麻烦的