回答

1

我假设你在谈论可以找到的“Hello World”NativeScript应用程序here。区别在于main-page.jsmain-page.xml的后面的“”代码(请注意,命名约定对于{N}进行匹配非常重要),而main-view-model.js是已分配的单独文件如bindingContext在其navigatingTo事件主page.xml的页面,你可以看到here

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(); 
} 

为了改变在主page.xml的标签(的TextView)的文本及其你可以通过一个ID(getViewById()example)或直接使用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"); 
} 
+1

谢谢弗拉基米尔。这正是我需要的! :-) –

相关问题