情况:
我正在制作一个必须使用 ui-select 的 Angular 应用程序:在用户信息页面中,在选择中必须可以选择一个或多个标签。它几乎可以工作,除了我在获取和显示预先存在的标签时遇到问题。
编码:
看法:
<ui-select multiple ng-model="info_data.tags" theme="bootstrap" ng-disabled="disabled">
<ui-select-match placeholder="Select tag...">{{$item.name}} </ui-select-match>
<ui-select-choices repeat="tag in all_tags | propsFilter: {name: $select.search}">
{{tag.name}}
</ui-select-choices>
</ui-select>
<p>Selected: {{info_data.tags}}</p>
控制器:
$http({
url: base_url + 'main/db_get_all_tags',
method: "POST",
}).success(function (data) {
$scope.all_tags = data;
});
$scope.show_info = function() {
var result_info = DbService.get_info( $stateParams.db_data_id );
result_info.then( function( data )
{
$scope.info_data = data;
});
};
尝试 1:
它发生了一个非常奇怪的行为。我在用户的信息页面中看不到标签,甚至在 ui-select 中也看不到。除非刷新 5/6 次,否则它会突然神奇地工作,在用户信息页面和 ui-select 中显示标签。在这两种情况下,无论是否工作,我都会收到几条相同类型的错误消息:
无法读取未定义的属性“长度”。
尝试 2:
为了解决这个问题,我在控制器中添加了这段代码:
$scope.info_data = { tags: [] };
$scope. all_tags = [];
而且我不再收到任何错误消息。该应用程序很稳定,我可以在用户信息页面中看到正确的标签。唯一的问题是标签不再在 ui-select 中加载。
如果我选择一个新标签,那么它可以正常工作,但我会丢失预先存在的标签。
问题):
如何使 ui-select 正常工作?(目前是v0.8.3) 有冲突的问题吗?
我怎样才能正确地从服务器调用预先存在的数据?
非常感谢!