Ich benutze nativescript, um eine grundlegende App zu erstellen, aber ich bin fest, den Kontext zwischen den Seiten zu senden.
Ich listet eine Reihe von Elementen in page1 auf, die ich von einer http-Anfrage bekomme, und was ich erreichen möchte, ist die ID des Elements in den Kontext zu senden, um eine http-Anfrage zu machen und die Antwort in page2 zu rendern.
Hier ist mein Ansatz:Senden dynamischer Werte im Kontext in nativescript
page1.xml (diese Seite in eine tabviewitem injiziert wird)
<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
Die Sache ist: wenn ich auf ein Element klicke, navigiere die App zu Seite2, aber zeige nicht den Namen, der innerhalb des Kontexts gesendet wurde, und wenn ich es mit Info versuche, funktioniert es.
Ich kann nicht herausfinden, wie es funktioniert.
Vielen Dank im Voraus
Wenn ich console.log den Namen und die ID Ich bekomme [object object], aber wenn ich die Funktion auf eine label verschiebe und den Namen und die ID als label -Eigenschaft lege, bekomme ich die richtigen Werte –