Wijmo Autocomplete & AngularJS - 从加载的数据设置初始值
Wijimo Autocomplete & AngularJS - setting initial value from loaded data
我正在尝试在从外部数据源加载的 Wijimo 自动完成控件中设置初始值。作为表单的场景用于创建一些新数据然后保存。随后需要编辑数据,以便将其重新加载到表单中。
我可以在初始表单上成功使用自动完成 - 源列表是一个 JSON 对象数组,已加载到控制器中。该应用程序正在使用 UI 路由器,所以我先解决这个问题。
当我保存数据时,我从自动完成控件中序列化选定的对象,然后保存到 Mongo 数据库存储中。将此数据重新加载时,它会转换回对象。
控件的外观如下:
<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;
})
自动完成控件未绑定到所选航空公司 属性。
我尝试在指令上使用 selected-index 属性,看看是否可以在数据加载时将其更改为某些内容,但它也不起作用。我怀疑它与摘要循环有关,但我不确定。
有什么想法吗?
谢谢
我试图通过重新加载数据和设置 selectedAirline 属性 来复制场景,并且它与最新版本 32 一起运行良好。这是 fiddle:
http://jsfiddle.net/n1kpkcud/2/
` $scope.countries = initialList;
$scope.selectedAirline = '';
$scope.setItem = function () {
$scope.countries = reloading;
$scope.selectedAirline = 'Yemen';
}`
我建议您更新此 fiddle 以便它重现该问题,我可以相应地向您提出建议。
我正在尝试在从外部数据源加载的 Wijimo 自动完成控件中设置初始值。作为表单的场景用于创建一些新数据然后保存。随后需要编辑数据,以便将其重新加载到表单中。
我可以在初始表单上成功使用自动完成 - 源列表是一个 JSON 对象数组,已加载到控制器中。该应用程序正在使用 UI 路由器,所以我先解决这个问题。
当我保存数据时,我从自动完成控件中序列化选定的对象,然后保存到 Mongo 数据库存储中。将此数据重新加载时,它会转换回对象。
控件的外观如下:
<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;
})
自动完成控件未绑定到所选航空公司 属性。
我尝试在指令上使用 selected-index 属性,看看是否可以在数据加载时将其更改为某些内容,但它也不起作用。我怀疑它与摘要循环有关,但我不确定。
有什么想法吗?
谢谢
我试图通过重新加载数据和设置 selectedAirline 属性 来复制场景,并且它与最新版本 32 一起运行良好。这是 fiddle: http://jsfiddle.net/n1kpkcud/2/
` $scope.countries = initialList;
$scope.selectedAirline = '';
$scope.setItem = function () {
$scope.countries = reloading;
$scope.selectedAirline = 'Yemen';
}`
我建议您更新此 fiddle 以便它重现该问题,我可以相应地向您提出建议。