Ядро NativeScript имеет очень легкий вес, никаких необычных функций, таких как вычисленные из коробки.Но есть propertyChangeEvent
, который вы можете использовать для обновления foo
при каждом изменении name
.
var observableModule = require("tns-core-modules/data/observable");
function HomeViewModel() {
var viewModel = observableModule.fromObject({
name: "John",
foo: ""
});
viewModel.on("propertyChange", function (event) {
const propertyName = event.propertyName;
if (propertyName === "name") {
viewModel.set("foo", "Hello " + event.value);
}
});
// To compute initial value for `foo`
viewModel.notifyPropertyChange("name", viewModel.get("name"), viewModel.get("name"));
return viewModel;
}
module.exports = HomeViewModel;
Вот пример игровой площадки .
Iпредложил бы перейти на Angular / Vue, если вы ищете модные функции, такие как вычисления, динамические шаблоны и т. д., с удобным синтаксисом.Я не использовал Knockout, но, полагаю, его можно интегрировать с NativeScript так же, как сегодня, с Angular / Vue, с некоторыми приличными усилиями - в конце дня все просто JavaScript;)