gpt4 book ai didi

http - 在 native 脚本的上下文中发送动态值

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:26:26 24 4
gpt4 key购买 nike

我正在使用 nativescript 构建一个基本应用程序,但我无法在页面之间发送上下文。
我在 page1 中列出了我从 http 请求中获得的一系列项目,我想要实现的是将项目的 id 发送到上下文中以发出 http 请求并在 page2 中呈现响应。
这是我的方法:

page1.xml(这个页面被注入(inject)到一个tabviewitem中)

<StackLayout class="tab-content" loaded="onViewLoaded">
<GridLayout rows="auto, *">
<ListView items="{{ motels }}"
row="1"
id="motelsList"
motelId="{{ id }}"
name="{{ name }}"
itemTap="goToMotelDetail">
<ListView.itemTemplate>
<GridLayout columns="auto, *">
<GridLayout columns="auto" rows="auto" class="icon-wrap">
<Image width="70" height="70" src="http://fpoimg.com/70x70" stretch="fill" css="icon-image" />
</GridLayout>
<StackLayout col="1" verticalAlignment="center">
<Label text="{{ name }}" textWrap="true" class="motel-name" />
<Label text="{{ address }}" textWrap="true" class="motel-address" />
</StackLayout>
</GridLayout>
</ListView.itemTemplate>
</ListView>
<ActivityIndicator busy="{{ isLoading }}" row="1" horizontalAlignment="center" />
</GridLayout>
</StackLayout>

page1.js

exports.goToMotelDetail = function(args) {
var id = args.object.motelId;
var name = args.object.name;
var navigationEntry = {
moduleName: "views/motel-detail/motel-detail",
context: {
info: "some string to test",
id: id,
name: name
},
animated: false
};
var topmost = frameModule.topmost();
topmost.navigate(navigationEntry);
}

page2.xml

<Page  navigatedTo="navigatedTo">
<Page.ActionBar>
<ActionBar title="{{ name }}" />
</Page.ActionBar>
<Label text="Motel detail" />
</Page>

page2.js

exports.navigatedTo = function (args) {
var page = args.object;
var dataItem = page.navigationContext;
page.bindingContext = dataItem;
};

问题是:当我点击一个项目时,应用程序导航到第 2 页,但没有显示在上下文中发送的名称,如果我尝试使用信息,它会起作用。
我不知道如何让它发挥作用。
提前致谢

最佳答案

我认为那是因为您没有从 args.object.name 中获取 name。您是否尝试过 console.log id 和名称?它显示信息的原因是因为您将上下文中的信息设置为字符串,而名称可能什么都没有。

我也认为你的代码有问题:

<ListView items="{{ motels }}"
row="1"
id="motelsList"
motelId="{{ id }}"
name="{{ name }}"
itemTap="goToMotelDetail">

ListView 没有“motelId”或“name”这样的属性,据我所知,这些也应该在 ListView.itemTemplate 中。

还有一件事,您将“itemTap”放在 ListView 标记中。这意味着您从 args.object 获得的对象将是 ListView 的实例,它没有像 name 这样的属性,因此您没有发送到 page2 的名称

关于http - 在 native 脚本的上下文中发送动态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648891/

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