Sye*_*yed 32 javascript html5 angularjs angular-ui
我正在使用角度UI选择.
https://github.com/angular-ui/ui-select
我想从远程服务获取数据.每次用户在文本字段中键入内容.我想从远程服务获取数据,并根据输入值过滤结果.
我写了一个Web服务和Web服务工作正常.
如何使用angular ui select从远程服务获取数据?
目前我正在关注demo中的简单示例
<ui-select multiple ng-model="multipleDemo.colors" theme="select2" ng-disabled="disabled" style="width: 300px;">
<ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match>
<ui-select-choices repeat="color in availableColors | filter:$select.search">
{{color}}
</ui-select-choices>
</ui-select>
Run Code Online (Sandbox Code Playgroud)
availableColors
是预定义的数组.我不想事先定义数据数组.
我一直在互联网上查找任何可能的文档或教程,但无法找到任何有用的东西.
aba*_*hka 56
在您的示例中,首先必须将您初始化availableColors
为空数组:
$scope.availableColors = [];
Run Code Online (Sandbox Code Playgroud)
然后,您可以编写简单的服务$http
:
$http.get('data.json').then(
function (response) {
$scope.availableColors = response.data;
$scope.multipleDemo.colors = ['Blue','Red'];
},
function (response) {
console.log('ERROR!!!');
}
);
Run Code Online (Sandbox Code Playgroud)
因此,现在您可以使用此代码而无需availableColors
通过某些值预先定义您的代码.
在这个例子中,我添加了data.json
包含颜色数组的文件.
这是一个非常简单的例子,但我希望它会对你有所帮助.更改从line 118
文件开始demo.js
.
如果要动态更新的选项列表-您可以使用属性refresh
和refresh-delay
对的ui-select-choices
指令.
你可以猜到,第一个属性的功能就像
refresh="funcAsync($select.search)"
Run Code Online (Sandbox Code Playgroud)
每次输入任何内容时都会调用它.你可以使用第二个属性作为
refresh-delay="0"
Run Code Online (Sandbox Code Playgroud)
您可以猜测它用于调用refresh
函数的设置延迟(以毫秒为单位).默认情况下,此值设置为1000
.
我更新了我的插件,因此我决定不编写自己的后端函数.这就是为什么你可以通过输入red
第一个ui-select
字段来检查它的工作原理- 值将从另一个.json
文件中获取 - data1.json
.
希望,它会帮助你.