Проблема
Я просто не могу понять модель представления в NativeScript
Мне трудно понять, как модели представления работают в NativeScript. Я понимаю концепцию высокого уровня - шаблон MVVM позволяет нам создавать наблюдаемые объекты - и наш пользовательский интерфейс обновляется при изменении значений.
Вот простой пример:
Основные-page.js
var createViewModel = require("./main-view-model").createViewModel;
function onNavigatingTo(args) {
var page = args.object;
page.bindingContext = createViewModel();
}
exports.onNavigatingTo = onNavigatingTo;
главный ракурс-model.js
var Observable = require("tns-core-modules/data/observable").Observable;
function getMessage(counter) {
if (counter <= 0) {
return "Hoorraaay! You unlocked the NativeScript clicker achievement!";
} else {
return counter + " taps left";
}
}
function createViewModel() {
var viewModel = new Observable();
viewModel.counter = 42;
viewModel.message = getMessage(viewModel.counter);
viewModel.onTap = function() {
this.counter--;
this.set("message", getMessage(this.counter));
}
return viewModel;
}
exports.createViewModel = createViewModel;
Я понимаю, кое-что, что происходит. Но не все.
У меня есть вопросы ...
- Как бы вы добавили новую функцию, например, функцию проверки электронной почты? Перейдет ли он на страницу просмотра модели или просто на страницу Javscript?
- Допустим, я добавил новое текстовое поле в пользовательский интерфейс. У меня есть функция крана. Куда идет моя функция?
Так что в этом случае все, что связано с пользовательским интерфейсом, должно идти в функцию createViewModel? Это верно?
Я также видел в примерах приложений, где разработчик вообще не использует модели представления - кажется, он просто создает его как наблюдаемый объект.
Спасибо, что посмотрели. Я знаю, что я близок к пониманию, но это bindingContext , и модель представления меня немного смущает. [Я прочитал все в NS документах]
John