如何通过main-page.js更改基于XML的TextField的文本?我使用 this.set("message", getMessage(this.counter));
通过main-view model.js更改值。但是,当我在主页上尝试使用时,这种情况无法正常工作。这个怎么做?:-)我需要对我的主要问题进行解释。预先感谢。
我假设您谈论可以在此处找到的" Hello World" nativecript应用程序。不同之处在于, main-page.js 是 main-page.xml 的" 代码"(请注意,命名约定是对于{n}进行匹配)和Main-View-model.js是一个单独的文件,它已被分配为bindingContext
的单独文件,在其导航事件中的Main-page.xml页面上,您可以在此处看到:
function onNavigatingTo(args) {
/*
This gets a reference this page’s <Page> UI component. You can
view the API reference of the Page to see what’s available at
https://docs.nativescript.org/api-reference/classes/_ui_page_.page.html
*/
var page = args.object;
/*
A page’s bindingContext is an object that should be used to perform
data binding between XML markup and JavaScript code. Properties
on the bindingContext can be accessed using the {{ }} syntax in XML.
In this example, the {{ message }} and {{ onTap }} bindings are resolved
against the object returned by createViewModel().
You can learn more about data binding in NativeScript at
https://docs.nativescript.org/core-concepts/data-binding.
*/
page.bindingContext = createViewModel();
}
为了更改文件后面的代码中的标签(textView)的文本(textView),您可以通过ID(getViewById()
示例)获得标签,或直接使用bindingContext
(您的'viewModel'):
var createViewModel = require("./main-view-model").createViewModel;
var viewModel;
function onNavigatingTo(args) {
var page = args.object;
viewModel = = createViewModel();
page.bindingContext = viewModel;
}
// Example with event handler for a 'tap' event of a Button
function onButtonTap(args) {
viewModel.set("message", "New message set via code behind");
}