何らかの理由で、AureliaデータバインディングでjQuery MiniColorsカラーピッカー(http://labs.abeautifulsite.net/jquery-minicolors/)が正しく動作しないようです。aureliaバインディングでjQuery MiniColorsを使用する
calendar.html(テンプレート):
<!-- src/settings/school/calendars -->
<template>
<require from="jquery-minicolors/jquery.minicolors.css"></require>
<form>
<div class="form-group">
<label class="control-label" for="cal_name_orig"><span t="Calendar_name"></span></label>
<input type="text" class="form-control" ref="cal_name_orig" value.bind="calendar.cal_name_orig & validate" />
</div>
<div class="form-group">
<label class="control-label" for="cal_color"><span t="Color"></span></label>
<input type="text" id="cal_color" class="form-control" value.bind="calendar.cal_color">
</div>
</form>
</template>
そして、私のcalendar.js(ビューモデル)
//src/settings/school/calendars.js
import 'jquery-minicolors';
export class SettingsSchoolCalendars {
error = null;
selectedId = null;
calendar = {};
attached() {
var self = this;
// set focus when modal is shown
$("#cal_color").minicolors({
control: "wheel",
theme: "bootstrap",
});
}
}
形でのコントロールの動作が、二つがありますバインディングに関する問題:
calendar.cal_colorの値は入力に表示されますが、カラーピッカーの色は設定されません。
カラーピッカーの色を変更すると、新しい値が入力に表示されますが、バインドされた値calendar.cal_colorは更新されません。
jQuery MiniColorsは入力コントロールのvalue.bindプロパティを使いこなしていますか?別の説明がありますか?
私は成功したモデルがMiniColorsのインスタンスにこれを追加することによって更新するために得ることができます:
change: function(hex, opacity) {
self.calendar.cal_color = hex;
}
をしかし、私は反対のことを行うように見えることはできません(MiniColorsコントロールを更新したときにモデルの変更)。それでも、初期の色は正しく読み込まれません。
ヘルプ!
ます'$("#cal_color ")...' '参照を取得するには' ref'属性を使うべきです参照したい要素にVMを適用します。あなたのVMコード '$(this.cal_color)... 'の中で'