2016-05-27 3 views
1

XとOのランダムなセットを使用してJSONを生成しています。ポリマーのカスタム要素。最初にページを開くと、すべてうまく動作し、毎回別のグリッドが表示されます。また、新しいXとOのセットでJSONを再生成するindex.htmlページにボタンを追加しましたが、ポリマー要素はイベントの変更にフラグを付けたり、子要素を新しいデータで更新することはありません。ポリマーを使用してJSONオブジェクトの変更をフラグ付けし、javascriptからデータを渡していくつかの子要素をレンダリングする方法

それだけで私は、単純な「forceDB.js」スクリプトを書かれている

...私はそれを文字列に変更した場合、私は変更通知を毎回取得するので、私のJSONオブジェクトの問題のようですJSONを生成してポリマー要素に渡します.setAttribute('layout', data)ポリマーへの変更を通知し、ポリマースクリプトのすべての子要素を更新するにはどうすればいいですか?

JSONオブジェクトは

enter code here 
<script> 
    Polymer({ 
    is:'grid-layout', 
    properties:{ 
     layout: { 
     type: Object, 
     reflectToAttribute : true 
     }, 
     observers: 'layoutChanged(layout.*)' 
    }, 
    setLayout: function(newdb){ 
    console.log('new - ' + JSON.stringify(newdb)); 
    this.set('layout', newdb); 
    }, 
    layoutChanged: function(changedthing){ 
    alert("Layout Changed!"); 
    }, 
    }); 
</script> 

は私がポリマー中にキーポイントを逃しことができることを考えて...要素の私のポリマースクリプト側はこのようになります。この

let data = { 
    "a1":"", 
    "a2":"", 
    "a3":"", 
    "b1":"", 
    "b2":"", 
    "b3":"", 
    "c1":"", 
    "c2":"", 
    "c3":"" 
}; 

のように見えますか多分私は何か間違っている。しかし、私は単純なXとOのゲームを持っています。ポリマーのデータバインディングプリンシパルを把握しようとしています。

notify: true 

をそして、あなたがHTML内の子要素にレイアウトプロパティをデータバインディングされているかを確認すると便利かもしれません:

答えて

0

それはレイアウトプロパティが必要であるということでした。

+0

私はnotify:trueを使用しようとしましたが、動作しないようです。私は、XとOのJSONオブジェクトの新しいセットである 'data'を使って、forceDB.jsからindex.htmlのボタンを押して実行する' document.getElementById(...)。setLayout(data); 'を使用しました。私は暗黙のうちに '.setLayout({a1:data.a1、a2:data.a2 ...}) 'を介してパラメータとして各キー値を暗黙的に設定することで回避策を見つけましたが、これは完全なJSON表示されませんが、各値の暗黙的な変更は行いますか? – user2006866

+0

htmlの角かっこを使用してレイアウトを子要素にバインドしていますか、または設定を変更するたびに手動で属性を設定するだけですか? –

関連する問題