javascript - NativeScript 核心 TextField onTextChange 在模型和外部模型中
问题描述
我正在使用 NativeScript 5.0 核心,似乎没有方法可以在文本字段上执行 textChange 事件。我的想法是这样的:
<TextField class="width90" text="{{ productPrize }}" editable="true" textChange="{{ onTexTextChange }}"/>
在js方面:
exports.onReSonTexTextChangecanPrize = function (args) {
alert(test);
};
这个sintax在“点击”事件中对我来说很好,但我读到了一些东西,比如在NativeScript core 5.0中没有办法做到这一点。
我在 NativeScript doc 中找到了一个在模块中执行此操作的方法:
const observableModule = require("tns-core-modules/data/observable");
function HomeViewModel() {
const viewModel = observableModule.fromObject({
productCode: "",
productPrize: ""
});
viewModel.addEventListener(observableModule.Observable.propertyChangeEvent, (args) => {
// args is of type PropertyChangeData
console.log("propertyChangeEvent [eventName]: ", args.eventName);
console.log("propertyChangeEvent [propertyName]: ", args.propertyName);
console.log("propertyChangeEvent [value]: ", args.value);
console.log("propertyChangeEvent [oldValue]: ", args.oldValue);
console.log("propertyChangeEvent [object]: ", args.object);
});
return viewModel;
}
module.exports = HomeViewModel;
我正确获取了日志,但我不知道如何将相应的值导出到模型。
我有这个代码来连接视图:
const HomeViewModel = require("./home-view-model");
exports.onNavigatingTo = function(args) {
page = args.object;
mv = page.bindingContext = new HomeViewModel();
};
我想知道如何像示例一样做到这一点,但是知道如何在模块上开发它也会很有趣。
解决方案
最后我找到了一个方法,但我不知道它是否是一个“干净”的解决方案或者是否有更好的解决方案:
page.getViewById("texFieldId").addEventListener("textChange", function(args){
console.log("text changed");
})
推荐阅读
- asp.net-core - 使用内置身份服务器在 asp net core 3.0 中添加和访问声明
- c - 这个函数返回什么?
- azure - 触发 Azure 函数以调用 Web 作业
- postgresql - 数据库操作预计会影响 1 行,但实际上影响了实体框架的 0 行
- javascript - 滚动开始时如何将 window.pageOffsetY 值传递给固定变量?
- iis - 网页显示在主机 ie11 上,但不在另一台机器上,我错过了什么吗?
- python - 在 PyGame 中与 AI 交互
- android - 如何在不滚动到第一页的情况下更新 ViewPager 中的单页内容?
- c# - Windows 托管服务的消息队列大小是多少?
- node.js - 在 aws 上部署时如何使用环境变量