を変更:hereはJSViews 2ウェイバインディングアップデート内側の配列のトップレベルの変数は、私がJSViewsに、このノックアウトコードを変換しようとしています
私はそれが最初の反復のために働くことができますが、色が更新されませんをクリックしたがって、 'js-active'クラスは追加されません。理由はわかっています。なぜなら、私はその変化を観察していないからです。しかし、私はこれらの2つをどのように接続するのか分からないようです。
私は2つの別々のko.observblesを撮影したものと、それらに参加している:
var colorPickerData = {
selectedColor: "Red",
materialColors: [
{
color: "Red",
variations: [
{
weight: 50,
hex: "#FFEBEE"
....
、ここではテンプレートです:ここ
<script id="color-picker-template" type="text/x-jsrender">
<div class="material-color-picker">
<div class="material-color-picker__left-panel">
<ol class="color-selector">
{^{for materialColors ~paletteColor=selectedColor }}
<li>
<input name="material-color" type="radio" data-link="id{:'materialColor' + #getIndex() } checked{:~paletteColor} value{:color}">
<label data-link="for{:'materialColor' + #getIndex()} title{:color} css-color{:variations[4].hex }"></label>
</li>
{{/for}}
</ol>
</div>
<div class="material-color-picker__right-panel">
{^{for materialColors ~paletteColor=selectedColor}}
<div data-link="class{:(color == ~paletteColor)? 'js-active color-palette-wrapper': 'color-palette-wrapper' }">
<h5 class="color-palette-header" data-link="text{:color}"></h5>
<ol class="color-palette">
{^{for variations}}
<li id="clipboardItem" class="color-palette__item" data-link="data-clipboard-text{:hex } css-background-color{:hex }">
<span data-link="text{:weight}"></span>
<span data-link="text{:hex}"></span>
</li>
{{/for}}
</ol>
</div>
{{/for}}
</div>
</div>
は連結コードです:
$.templates("#color-picker-template").link("#color-wrapper", colorPickerData, true);
私はselectedColorの変更をどのように観察できますか?
ありがとうございます。あなたの作品は素晴らしいと本当に感謝しています。 – grayson
私はあなたのカラーピッカーサンプルが好きです。 jsviews.comにJsViewsのバージョンをカスタムタグコントロールのサンプル(いくつかの追加と改善を加えて)として含めることもできます。あなたはおそらく、上記の答えを「受け入れられる」とマークできますか? – BorisMoore