Sin*_*ere 5 angularjs ui-select
这是我在角度ui-select中得到的完整错误
Error: [$interpolate:interr] Can't interpolate: {{$select.getPlaceholder()}} TypeError: Cannot read property 'length' of undefined
Run Code Online (Sandbox Code Playgroud)
我的标记是:
<ui-select multiple ng-model="case.keywords" theme="bootstrap">
<ui-select-match placeholder="Select keywords...">{{$item.name}}</ui-select-match>
<ui-select-choices repeat="keywords in keywords | filter: $select.search">
<div ng-bind-html="keyword.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
<p>Selected: {{case.keywords}}</p>
Run Code Online (Sandbox Code Playgroud)
除了get来自db的关键字数组之外,控制器没什么特别之处.显然ngSanitize,ui.select它包含在模块依赖项中.
我遇到的另一个问题是选择不可见.我能够显示所选的,但选项列表不可见.我正在使用bootstrap主题,select.css被引用.这是它的样子

谢谢您的帮助.
@SunilVurity 和 @Fiver 的问题给了我一些提示,引导我解决问题:
首先我keywords改为keyword:
<ui-select-choices repeat="keywords in keywords | filter: $select.search">
Run Code Online (Sandbox Code Playgroud)
我的控制器中的第二个是:
appFactory.getKeywords().then(function (keywords){
$scope.keywords = keywords;
$scope.case = {};
$scope.case.selectedKeywords = [];
});
Run Code Online (Sandbox Code Playgroud)
我改为:
$scope.case = {};
$scope.keywords = [];
learningCasesFactory.getKeywords().then(function (keywords){
$scope.keywords = keywords;
$scope.case.selectedKeywords = [];
});
Run Code Online (Sandbox Code Playgroud)
正如您在控制器中看到的,该get函数是异步的,它在加载时向视图返回一个未定义的列表,这导致了我在问题中提到的错误。更新控制器后,错误消失。这个问题帮助AngularJS Interpolation Error。
第三,uiselect和angular版本可能会导致问题。我的角度版本是1.2.9。这个ui-select Github问题显示升级Angular版本解决了问题,我升级到1.3.11
感谢@SunilVurity 和@Fiver
| 归档时间: |
|
| 查看次数: |
3806 次 |
| 最近记录: |