ページURLから取得した数値に従って、iron-ajax要素内のURLを変更しようとしています。これを行うには、取得した番号をとる計算されたプロパティでURLを作成しています。
私が抱えている問題は、プログラムでプロパティ内の値(URLに追加される数値)を変更する方法がわかりません。それを回避するために、私は自分のHTMLの中にNumberを設定しようとしました、そして、データはそれをプロパティにバインドします。しかし、私はどちらかを働かせることはできません。
私のプロパティ内でuserIdの値をハードコードすると、すべて正常に動作するので、間違いがデータバインディングである必要があります。誰かが私が間違っている方向に私を向けることができれば素晴らしいだろう。しかし、プログラムでuserIdの値を設定するなどの優れた解決策がある場合は、教えてください。プロパティ値をプログラムで変更するか、データをポリマーにバインドします。
<dom-module id="my-profile-view">
<template>
<style></style>
<iron-ajax
auto
id="requestSingleUser"
url="{{url}}"
handle-as="json"
last-response="{{response}}"></iron-ajax>
<span id="stdNr" userId="{{55}}"></span>
</template>
<script>
Polymer({
is: 'my-profile-view',
properties: {
route: Object,
userId: {
value: '',
notify: true
},
url: {
computed: 'computeURL(userId)'
},
},
ready: function() {
//Get's the URL and strips it down to the nuber
var getUrl = window.location.href;
var stdudentNumber = getUrl.split("/").pop();
//Set the number to then bind it back to the value inside the properties
var stdId = this.$$("#stdNr");
stdId.setAttribute('userId','{{20}}');
},
computeURL: function(userId) {
return['http://api.dev/user/' + userId];
},
});
</script>
</dom-module>
おかげで、私はプロパティに真の通知を追加しました私の試みは冗長になります。 URLに関しては、ユーザーがクリックされたときにユーザーを表示してプロフィールを開くページがあります。現時点では、クリックされたIDを私のURLに渡します。表示されているページは、URLをIDまで削除してデータを要求します。それはapiのURLとは異なるので、私はまだ完全なドメインパスが必要な理由です。 しかし、Polymerでセッションを使用する方法の例を見つけたら、それを変更します。 – Niklas
呼び出しページのURLがいつ変わるかを知る必要があります。これはちょっと複雑ですが、ウィンドウのpopstateイベントにイベントリスナーを追加するか、 'path 'を変数として公開する' 'を詳しく見てくださいオブザーバーをオンにする。通知は、要素の外部に通知する必要がある場合はプロパティでのみ必要であり、要素内であれば必要ではない - 自動的に発生する –
akc42