私は約Behaviors in Polymerを読んでいます。ポリマービヘイビアを子要素にバインドする方法はありますか?
私はコピー/貼り付けた例をhighlight-behavior.html
ため:
<script>
HighlightBehavior = {
properties: {
isHighlighted: {
type: Boolean,
value: false,
notify: true,
observer: '_highlightChanged'
}
},
listeners: {
click: '_toggleHighlight'
},
created: function() {
console.log('Highlighting for ', this, 'enabled!');
},
_toggleHighlight: function() {
this.isHighlighted = !this.isHighlighted;
},
_highlightChanged: function(value) {
this.toggleClass('highlighted', value);
}
};
その後、私の要素に私は(ちょうど重要な部分)以下の持っている:
<link rel="import" href="highlight-behavior.html">
<dom-module id="highlighting-test">
<template>
<style>
:host {
display: block;
background-color: red;
}
:host.highlighted {
background-color: green;
}
.highlighted {
background-color: green;
}
</style>
<h1>Click anywhere here to toggle highlighting!</h1>
</template>
<script>
Polymer({
is: 'highlighting-test',
behaviors: [HighlightBehavior]
});
</script>
</dom-module>
今問題は、highlighted
クラスの切り替えは、ホスト要素内をクリックしたときに機能しますが、それは単にh1
要素を強調表示していないことですnt。ホスト要素にhighlighted
クラスを追加しています。
これは、それがブラウザに表示される方法です。
<highlighting-test class="highlighted">
<h1 class="style-scope highlighting-test">Click anywhere here to toggle highlighting!</h1>
</highlighting-test>
クリックすると、私は確かにそれがホスト要素highlighting-test
と背景の変化にhighlighted
クラスを切り替えていることがわかります。
強調表示の動作がh1
タグだけに適用されるようにするにはどうすればよいですか?
は働いていません。 "Uncaught TypeError:' this。$。myclass.toggleClass'は関数ではありません。 " – Diyarbakir
申し訳ありませんが、私の悪い。私は今修正された答えを投稿しました – a1626
それは確かに動作します。どうもありがとう :) – Diyarbakir