我正在尝试在我的项目中使用ui-select,但这次控制器的功能将作为选项传递给ui-select-choices。见下文:
HTML:
<ui-select ng-model="selectedItem" theme="selectize" ng-disabled="disabled" style="width: 300px;" title="Please select">
<ui-select-match placeholder="Select">{{$select.selected}}</ui-select-match>
<ui-select-choices repeat="item in ctr.listItem()">
<span ng-bind-html="item">{{item}}</span>
</ui-select-choices>
控制器:
vm.listItem = function() {
console.log("lisItem() called");
$http({
method : "GET",
url : "/pma/api/listyear"
}).then(function successCallback(response) {
return response.data;
});
我从chrome的调试器注意到的是浏览器发送多个$ http请求,即使我在页面中只有一个ui-select元素
答案 0 :(得分:0)
如果您在角度HTML模板中使用某个函数,则希望每隔digest
调用一次该函数。在这种情况下,您应该将结果分配给变量并改为使用该变量。
答案 1 :(得分:0)
<强>更新强>
我注意到ui-select提供refresh
标记,通过调用函数重新加载内容,以便它可以支持动态选择。回到我之前的示例,以下是实现我需要的新代码:
<ui-select ng-model="selectedItem" theme="selectize" ng-disabled="disabled"
style="width: 300px;" title="Please select">
<ui-select-match placeholder="Select">{{$select.selected}}</ui-select-match>
<ui-select-choices repeat="item in ctr.items" refresh="ctr.listItem()" refresh-delay="0">
<span ng-bind-html="item">{{item}}</span>
</ui-select-choices>
</ui-select>