ロード時paper-dropdown-menu
に を の値に設定したい。要素の登録時に設定された、呼び出された要素のサブプロパティに'Three'
value 属性をデータバインドすることで、これを行いたいと思います。以下のコードを使用してこれを試みると、表示された値が「Three」ではなく空白になっていることがわかります。paper-dropdown-menu
item.number
paper-dropdown-menu
目的の動作を実現するには、どのコードを変更すればよいですか?
問題を再現するには、次の手順に従います。
- この JSBinを開きます。
- ドロップダウン メニューの表示値の内容が空白であることに注意してください。
- というラベルの付いたボタンをクリックしますClick to show item
- コンソールの出力を確認します。
[オブジェクト オブジェクト] {番号: "3" }
- 上記の手順は、目的の動作が発生していないことを示していることを理解してください。
- ドロップダウン メニューで「4」という数字を選択します。
- というラベルの付いたボタンをクリックしますClick to show item
- コンソールの出力を確認します。
[オブジェクト オブジェクト] {番号: "4" }
- 上記の手順は、一方向のデータ バインディングが要素で機能していることを示しています。
どうすれば目的の動作を実現できますか?
http://jsbin.com/loceqayezo/1/edit?html,コンソール,出力<!doctype html>
<head>
<meta charset="utf-8">
<base href="https://polygit.org/components/">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>
<link href="polymer/polymer.html" rel="import">
<link href="paper-dropdown-menu/paper-dropdown-menu.html" rel="import">
<link href="paper-listbox/paper-listbox.html" rel="import">
<link href="paper-item/paper-item.html" rel="import">
</head>
<body>
<dom-module id="x-element">
<template>
<style></style>
<p>
<button on-tap="show">Click to show item</button>
</p>
<paper-dropdown-menu label="Numbers"
value="{{item.number}}">
<paper-listbox class="dropdown-content">
<paper-item>One</paper-item>
<paper-item>Two</paper-item>
<paper-item>Three</paper-item>
<paper-item>Four</paper-item>
</paper-listbox>
</paper-dropdown-menu>
</template>
<script>
(function(){
Polymer({
is: "x-element",
properties: {
item: {
type: Object,
notify: true,
value: function() {
return {number: "Three"};
},
},
},
show: function() {
console.log('item', this.item);
},
});
})();
</script>
</dom-module>
<x-element></x-element>
</body>