gpt4 book ai didi

javascript - Nativescript - 使用按钮引用访问 'Binding Context'

转载 作者:行者123 更新时间:2023-11-28 03:20:03 26 4
gpt4 key购买 nike

我是原生脚本的新手。我正在使用 Brosteins 的“thenativescriptbook”来学习基础知识。

我试图理解 <Button tap=EventHandler> 传递的引用/参数与<Page Loaded=EventHandler>相比。我觉得按钮事件处理程序应该只传递对 <button></button> 的引用内容...而不是 <page></page>内容(包含在其中)?因此,bindingContext 不应访问 <page></page> 中的项目。 ,但是 <button></button> 中的那些? (显然我知道这不是真的;我也知道变量名称并不重要(即页面))

如果你看下面的代码,我的理解是“onLoaded”“args.object”传递的引用是<page>引用(然后将依次监视 <page></page> 内的数据绑定(bind)项)。其中“onTap”“args.object”仅引用 <button></button>内容? (其中不包括数据绑定(bind)的项目)?

onTap 事件处理程序如何访问 <page></page>数据绑定(bind)上下文似乎只指向 <button></button>

    scrapbook-page.xml

<Page loaded="onLoaded">
<StackLayout>
<Label text="Title: " />
<TextField class="header" text="{{title}}" />
<Label text="Age: " />
<DatePicker date="{{ date }}" />
<Label text="Gender: " />
<ListPicker items="{{ genders }}" selectedIndex="{{ gender }}" />
<Button tap="onTap" text="Done" />
</StackLayout>
</Page>

    scrapbook-page.js

var observable = require("data/observable");

exports.onLoaded = function (args) {
var page = args.object; // this is referencing the <page> object
var scrapbook = new observable.fromObject({
genders: ["Female", "Male", "Other"],
gender: null, //#A
date: null, //#A
title: null //#A
});

page.bindingContext = scrapbook;
};

exports.onTap = function (args) {
var page = args.object; // this is referencing the <button> object? not <page>
var scrapbook = page.bindingContext;

console.log("You have made " + scrapbook.title);
console.log("Age: " + scrapbook.date.toLocaleDateString());
console.log("Gender selected:" + scrapbook.genders[scrapbook.gender]);
}

感谢任何帮助澄清看似基本的问题的帮助。

谢谢:)

最佳答案

args.object 仅在整个应用程序中指向页面对象。按钮是它的 child 。重要的是要注意 args.object 是单例的,即使您尝试创建更多 args.object 它也仅引用先前创建的对象地址。因此,在页面的 onloaded 事件中,您创建了 args.object,然后单击按钮即可访问该对象。希望这有帮助......

关于javascript - Nativescript - 使用按钮引用访问 'Binding Context',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59242586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com