我使用nativescript來構建基本的應用程序,但我堅持在頁面之間發送上下文。
我正在列出頁面1中的一系列項目,我從一個http請求中獲得,我想要實現的是將項目的id發送到上下文中,以創建http請求並在頁面2中呈現響應。
這裏是我的方法:在nativescript上下文中發送動態值
page1.xml(此頁被注入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;
};
事情是:當我點擊一個項目時,應用程序導航到page2,但不顯示在上下文中發送的名稱,如果我嘗試使用信息,它的工作原理。
我無法弄清楚如何使它工作。
在此先感謝
當我console.log的名字和id我得到[對象對象],但如果我將該函數移動到標籤並將名稱和標識作爲標籤屬性,我會得到正確的值 –