gpt4 book ai didi

nativescript - 为什么更改的文本未反射(reflect)到 viewmodel 属性

转载 作者:行者123 更新时间:2023-12-05 06:56:50 24 4
gpt4 key购买 nike

我有一个属性 name

var viewModel = observableModule.fromObject({
name: "abcd",
onUsernameChanged: function () {
console.log("-->"+ viewModel.name)
}
});

像下面这样的文本框,

<TextField text="{{name}}" textChange="{{ onUsernameChanged }}"
class="h2 description-label" />

当我通过键入更改文本时,它总是只打印 --->abcd

为什么 viewmodel 属性没有更新?

Playground Demo of problem

目前我正在阅读更改后的文本,如下所示,并且这种方法不像 viewmodel 那样灵活易用

var view = require("ui/core/view");
var idUsername = view.getViewById(args.object, "idUsername");

最佳答案

通过查看您的代码,我推断您的 View 之间没有绑定(bind)(包含 TextField 的 XML 文件——假设您使用的是 NativeScript Core)和您的 View 模型(您拥有可观察的 viewModel 的 javascript 文件)。

textChange 事件发出时,您将在您的 ViewModel 中一遍又一遍地打印存储的值(name,在这种情况下:abcd)。例如,起初,您的值为 abcd,但文本可能为空。稍后,您键入 A,然后它会再次打印 abcd,依此类推。

如果要打印新的文本输出 TextField 元素,则必须使用事件发出的输出。看这段摘录:

const viewModel = observableModule.fromObject({
name: "abcd",
onUsernameChanged: function (eventData) {
// eventData has information on the textChange event
console.dir(eventData);
// Do whatever you want with this data, such as updating the view model
}
});

关于nativescript - 为什么更改的文本未反射(reflect)到 viewmodel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65040051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com