我正在尝试在从外部数据源加载的Wijimo自动完成控件中设置初始值。作为表单的场景用于创建一些新数据,然后保存。随后需要编辑数据,以便将其重新加载到表单中。
我可以在初始表单上成功使用自动完成 - 源列表是一个加载到控制器中的JSON对象数组。该应用程序正在使用UI路由器,所以我先解决这个问题。
当我保存数据时,我从自动完成控件中序列化所选对象,然后保存到Mongo DB存储。将数据重新加载到其中时,会将其转换回对象。
这是控件的样子:
<wj-auto-complete
selected-index="selectedIndexCombo"
selected-item="selectedAirline"
items-source="airlineCodes"
display-member-path="Title"
placeholder="Airline Code"
max-items="50"/>
源列表的示例如下所示:
{
"@href":"\/airline.nsf\/api\/data\/collections\/name\/(LUAirlines)\/unid\/8DCD734E7BCDA24D80257C99003770C4",
"@link":
{
"rel":"document",
"href":"\/airline.nsf\/api\/data\/documents\/unid\/8DCD734E7BCDA24D80257C99003770C4"
},
"@entryid":"98-8DCD734E7BCDA24D80257C99003770C4",
"@unid":"8DCD734E7BCDA24D80257C99003770C4",
"@noteid":"FB2",
"@position":"98",
"@siblings":100,
"@form":"Airline",
"AirlineCode":"WN",
"Airline":"Southwest Airlines",
"Title":"WN - Southwest Airlines"
}
因此,在最初创建表单时,将使用所选对象正确设置控制器属性selectedAirline。
所以这在保存功能中工作正常:
$scope.formData.selectedAirline = JSON.stringify($scope.selectedAirline);
但是在重新加载数据时:
AirlineInfoFactory.loadAirlineInfo($scope.reference).then(function success(response) {
$scope.selectedAirline = eval('(' + response.data.selectedAirline + ')');
$scope.information = response.data.information;
$scope.dataLoaded = true;
console.log($scope.selectedAirline)
$scope.selectedIndexCombo=11;
})
自动完成控件不会绑定到selectedAirline属性。
我尝试在指令上使用selected-index属性,所以看看我是否可以在数据加载时将其更改为某些内容,但它也不起作用。我怀疑它与消化循环有关,但我不确定。
有什么想法吗?
由于
答案 0 :(得分:2)
我尝试通过重新加载数据并设置selectedAirline属性来复制场景,并且它与最新版本32一起运行良好。这是小提琴: http://jsfiddle.net/n1kpkcud/2/
` $scope.countries = initialList;
$scope.selectedAirline = '';
$scope.setItem = function () {
$scope.countries = reloading;
$scope.selectedAirline = 'Yemen';
}`
我建议你更新这个小提琴,以便复制这个问题,我可以据此给你建议。