私はAureliaを使ってアプリケーションを構築していますが、これまでのフレームワークは本当に好きですが、値が数値のチェックボックスのリストを表示しようとしているところで問題が発生しました。実際には)、Aureliaはそれらを文字列に変換するように見えるため、比較は失敗します。フォーム内の数字を使って作業する
export class MyVm {
constructor() {
this.items = [
{name: 'Foo', id: 0},
{name: 'Bar', id: 1},
{name: 'Baz', id: 2}
];
this.selectedItems = [0, 2];
}
}
そして、私の見解では:このため
<ul>
<li repeat.for="item of items">
<input type="checkbox" value.bind="item.id" checked.bind="selectedItems">
${item.name}
</li>
</ul>
私は実際にちょうど他の比較の問題の束でにつながるthis.selectedItems = ["0", "2"]
をしなければならない作業する
は、私は基本的に何かのように持っています私自身のコード。また、データを保存するときに、選択した項目を後でサーバーに文字列として送信したくない場合もあります。
私はのtoString toViewとのparseInt fromViewを変換し、単純な値コンバータを使用してみましたが、私はselectedItemsの配列にこのコンバーターを実行することはできません。
export class IntValueConverter {
toView (val) {
return val.toString();
}
fromView (val) {
return parseInt(val);
}
}
はどのようにあなたはこれを解決するに行きますか?
ああ男:
最後に、私はこれはあなたの質問ではなく、フォームに数字を結合するために探してここに上陸他人のために知って、ここでカスタム要素とカスタム属性を使用してカップルの基本的な例ですどうもありがとうございます!あなたは 'value.bind'とは対照的になぜ' model.bind'を使う必要があるのか説明できますか?私はAureliaの単純さのために本当に好きでした。基本的にバインドしたい属性に '.bind'を追加するだけでした。これはもう少し感じています:/ Btw:' value = "$ {item.id}" 'は実際には "typo"(私のコードで 'value.bind'を使用していました) – powerbuoy
html input要素のvalue属性はすべてを文字列に変換して、実際の値を保持するために別の場所に格納する必要があります。 –
私の 'value.bind'をすべて' model.bind'に変更しました:sそしてそれは魅力的です。しかし、私は 'input [type = range]'でそれを変更して、動作を完全に止めました。なぜそれがすべての入力に対して同じように機能しないのか分かりますか?範囲は既に数値なのですか? – powerbuoy