Ядро NativeScript TextField onTextChange в модели и вне модели - PullRequest
0 голосов
/ 22 ноября 2018

Я использую ядро ​​NativeScript 5.0, и похоже, что нет способа сделать события textChange в текстовых полях.Моя идея примерно такая:

<TextField class="width90" text="{{ productPrize }}" editable="true" textChange="{{ onTexTextChange }}"/>

и в js:

exports.onReSonTexTextChangecanPrize = function (args) {
  alert(test);
};

этот синтаксис отлично работает для меня в событиях "tap", но я читаю что-то вроде нет методадля этого o NativeScript core 5.0.

Я нашел в NocScript 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();
};

Я хотел бы знать, как я могу сделать это, как пример, но этобудет интересно узнать, как это может быть разработано на модуле.

1 Ответ

0 голосов
/ 22 ноября 2018

Наконец я нашел метод, но я не знаю, является ли это «чистым» решением или есть лучшее решение:

page.getViewById("texFieldId").addEventListener("textChange", function(args){
    console.log("text changed");
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...