通过Telerik App Builder开发本机应用程序时,Main-page.js和main-view.model.



如何通过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");
}

相关内容

最新更新