You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TypeScript/NativeScript的TextChange事件中调用函数

TextField textChange事件触发修复方案

存在的问题

  • TextField未做双向绑定,输入值无法同步到ViewModel变量
  • 事件回调参数类型错误,textChange事件传递的是事件对象而非直接传入输入值
  • 模板绑定的变量名_message和代码中修改的message不匹配,页面不会同步更新
  • console.log使用双引号包裹模板字符串,存在语法错误

修正后代码

1. XML布局代码

如果是NativeScript Core模式:

<StackLayout class="p-20">
    <Label text="{{_message}}" class="h2 text-center" textWrap="true" />
    <TextField text="{{_target}}" hint="Target" textChange="updateTarget" />
</StackLayout>

如果是Angular + NativeScript模式:

<StackLayout class="p-20">
    <Label text="{{_message}}" class="h2 text-center" textWrap="true" />
    <TextField [(ngModel)]="_target" hint="Target" (textChange)="updateTarget($event)" />
</StackLayout>

2. main-view-model.ts代码

import { TextField, EventData } from '@nativescript/core';

// 提前声明对应可观察属性
private _target: string = '';
private _message: string = '';

updateTarget(args: EventData) {
    const textField = args.object as TextField;
    this._target = textField.text;
    console.log(`Updating target: ${this._target}`)
    this._message = `Target: ${this._target}`
}

注意:请确保你的ViewModel类继承了Observable类,否则属性变更不会触发页面刷新。

内容的提问来源于stack exchange,提问作者user17138210

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:24:05