Nativescript - 应用程序恢复后丢失数据绑定
Nativescript - Lost databinding after app resume
我有一个 View,它通过一个 TextField 和一个 Switch 绑定到一个 ViewModel(继承自 Observable)。
当我更改值时,所有值都完美绑定,我可以看到我的新值。
但如果我转到主屏幕,然后返回应用程序,这些值将被删除。
视图是像客户 CRUD 一样的基本形式。
这是 XML :
<Page xmlns="http://schemas.nativescript.org/tns.xsd"
loaded="loaded">
<!-- ... -->
<TextView text="{{ valueA }}" />
<!-- ... -->
<Slider value="{{ valueB }}" minValue="1950" maxValue="2016" />
</Page
这是代码隐藏:
let viewModel: ViewModel;
let page: Page;
export function loaded(args: EventData) {
page = <Page>args.object;
setTimeout(function() {
viewModel = new ViewModel();
page.bindingContext = viewModel;
}, 0);
}
你知道为什么我丢失了我的表单数据吗?
最有可能的是,当您返回应用程序时,loaded
事件会在您构建视图模型的位置触发。您应该尝试在不同的页面事件 (navigatedTo) 中构建或使用 "application-settings" 模块保存数据。然后在构建可观察视图模型时从应用程序设置中读取值。希望这有帮助。
https://docs.nativescript.org/ApiReference/application-settings/HOW-TO.html
我有一个 View,它通过一个 TextField 和一个 Switch 绑定到一个 ViewModel(继承自 Observable)。
当我更改值时,所有值都完美绑定,我可以看到我的新值。
但如果我转到主屏幕,然后返回应用程序,这些值将被删除。
视图是像客户 CRUD 一样的基本形式。
这是 XML :
<Page xmlns="http://schemas.nativescript.org/tns.xsd"
loaded="loaded">
<!-- ... -->
<TextView text="{{ valueA }}" />
<!-- ... -->
<Slider value="{{ valueB }}" minValue="1950" maxValue="2016" />
</Page
这是代码隐藏:
let viewModel: ViewModel;
let page: Page;
export function loaded(args: EventData) {
page = <Page>args.object;
setTimeout(function() {
viewModel = new ViewModel();
page.bindingContext = viewModel;
}, 0);
}
你知道为什么我丢失了我的表单数据吗?
最有可能的是,当您返回应用程序时,loaded
事件会在您构建视图模型的位置触发。您应该尝试在不同的页面事件 (navigatedTo) 中构建或使用 "application-settings" 模块保存数据。然后在构建可观察视图模型时从应用程序设置中读取值。希望这有帮助。
https://docs.nativescript.org/ApiReference/application-settings/HOW-TO.html