2016-10-25 1 views
0

私のnativescriptアプリケーションでは、フェッチモジュールを通してAPIのレスポンスからレベルを大きくすることを試みています。しかし、私はobserable.Howのコンテキストをバインドする方法を知らないページloaded.Hereは私のAPI-Nativescriptがレスポンスデータをレベルテキストにフェッチする

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

から私のコード -

応答のとき、私は私のレベルのテキストで{{価格}}に応答からそのを取得したいコンテキストをバインド。 [ファイル] -

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

ビューはhttpbin、この場合、

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

ロードされたイベントを使用して要求 -

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); 
}); 

答えて

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; 

とあなたのpage.xmlでを取得します。組織はデータを

の形式で返します
{"origin" : "some-ip-address-here"} 
+0

申し訳ありませんが、私のために働いていません。私はjavascriptを使用しています。 –

+0

それはほぼ同一です - 入力を削除する必要があります(例えば、、EventDataなど)、letをvarに置き換える必要があります。また、JSの方法を使ってObservableを "data/observable"からインポートしてください。http://uatdocs.nativescript.org/core-concepts/data-binding#how-to-create-a-binding –

+0

yeah 、あなたが言ったように私は試みました。しかし、何も起こっていません。 –

関連する問題