我有以下用AngularJS编写的代码(简单的HTML及其控制器),我将它们映射到我的状态文件
main.html中
<input class="serialSearch" data-ng-placeholder="Serial #" data-ng-model ="serialNum" list="suggestion"/>
<datalist id="suggestion">
<option data-ng-repeat="suggest in sugesstions.values"> {{suggest.title}}</option>
</datalist>
mainController
$scope.sugesstions = {};
var queryString= {"querystring" : ""+"q=name:"+$scope.serialNum+"*&qt=autocomplete-model&hl=true&hl.fl=name","$skip" : "0","$top" : "75"};
searchResource.getList(queryString).then(
function(data) {
$scope.sugesstions = data.items;
}
);
当我在searchBox中输入任何内容时,调用资源并返回数据,但在这种情况下,当searchBox内容有任何变化时,永远不会调用searchResource.getList
。为什么?
答案 0 :(得分:1)
如果要更改文本框内容并且期望再次触发查询机制,则需要附加ng-change
事件指令
<input class="serialSearch" data-ng-placeholder="Serial #" data-ng-model ="serialNum" list="suggestion" ng-change='search()'/>
在控制器中
$scope.search=function() {
var queryString= {"querystring" : ""+"q=name:"+$scope.serialNum+"*&qt=autocomplete- model&hl=true&hl.fl=name","$skip" : "0","$top" : "75"};
searchResource.getList(queryString).then(
function(data) {
$scope.sugesstions = data.items;
}
);
}