2016-10-25 9 views
0

In meiner nativescript App, ich versuche, eine Ebene von der Antwort meiner API durch Fetch-Modul bulid.Aber ich weiß nicht, wie Sie den Kontext in Obserable binden binden den Kontext, wenn Seite loaded.Here mein Code- istNativescript übergeben fetch Antwortdaten auf eine Ebene Text

Antwort von meinem API-

[{"value":"12000$"}] 

ich möchte bekommen, dass Wert von Reaktion in {{price}} in meinem Level Text .

Ansicht File-

<Page loaded="loaded"> 
    <GridLayout> 
    <Label text="{{ price }}" horizontalAlignment="left" verticalAlignment="center" tap="model" /> 
     </GridLayout> 
</Page> 

Anfrage-

fetch("http://10.0.2.2:8000/get_model", { 
     method: "POST", 
     headers: { "Content-Type": "application/json" }, 

     body: JSON.stringify({ 
       brand: data, 
    }) 
}).then(r => { return r.json(); }).then(function (data) { 
console.log(data[0].value); 

//How to push the value in obserable? 

}, function (e) { 
    console.log("Error occurred " + e); 
}); 

Antwort

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

var viewModel = new observableModule.Observable(); 
viewModel.set("ip", "none"); // initial value 

function onLoaded(args) { 
    var page = args.object; 
    page.bindingContext = vm; 

    fetch("http://httpbin.org/ip", { 
     method: "GET", 
     headers: { "Content-Type": "application/json" } 
    }) 
    .then(function (res) { return res.json(); }) 
    .then(function (data) { 
     console.log(data.origin); // make sure you are getting the value 
     viewModel.set("ip", data.origin); // binding to "price" 

    }) 
} 
exports.onLoaded = onLoaded; 

holen und in Ihrem page.xml das geladene Ereignis verwenden

<Page loaded="onLoaded"> 
    <Label text="{{ ip }}"/> 
</page> 

In diesem Fall httpbin. org gibt die Daten im Format

zurück
{"origin" : "some-ip-address-here"} 
+0

Tut mir leid, es funktioniert nicht für mich.Ich benutze Javascript. –

+0

Es ist fast identisch - Sie müssen die typings entfernen (z. B. , EventData, etc.) und ersetzen lassen mit var. Verwenden Sie auch die JS-Methode, um Ihr Observable aus "data/observable" zu importieren, und Sie können http://uatdocs.nativescript.org/core-concepts/data-binding#how-to-create-a-binding –

+0

yeah Ich habe versucht, wie du es gesagt hast. Aber nichts ist passiert. –

Verwandte Themen