私は、古い値、新しい値、および現在の値フィールドで構成されるいくつかのフィールドセットを含むモデルを持つデータ監査Webアプリケーションに取り組んでいます。現在の値は、古い値または新しい値が現在の値に使用されるべきかどうかを決定するためにかなり些細なロジックを使用する計算フィールド(KO項による)です(基本的に新しい値がある場合は古い値を使用します)。これらのフィールドセットは全体のフォームに約20個含まれているため、個別にすべてkendo.bind
に電話する必要はありません。ネストされたViewModel依存メソッドが動作しません
ここで私が行うことができるようにしたいものの例だ(およびドキュメントは、ソートの動作するはずと言うのではなく):
<div id="practiceSection">
<div id="phoneNumber">
<h4>Phone Number</h4>
<span>Display Value:</span>
<input id="displayPhoneNumber" data-bind="value: phoneNumber.DisplayValue"/><br/>
<span>Old Value:</span>
<input id="oldPhoneNumber" data-bind="value: phoneNumber.OldValue"/><br/>
<span>New Value:</span>
<input id="newPhoneNumber" data-bind="value: phoneNumber.NewValue"/><br/>
</div>
</div>
とJavaScript:
String.IsNullOrEmpty = function(value) {
var isNullOrEmpty = true;
if (value) {
if (typeof (value) == 'string') {
if (value.length > 0)
isNullOrEmpty = false;
}
}
return isNullOrEmpty;
}
function FieldBlock(oldValue, newValue) {
this.OldValue = oldValue;
this.NewValue = newValue;
this.DisplayValue = function() {
var newValue = this.get("NewValue");
if (String.IsNullOrEmpty(newValue))
return this.get("OldValue");
return newValue;
};
}
kendo.bind($("#practiceSection"), kendo.observable({
phoneNumber: new FieldBlock("111-111-1111", null)
}));
FieldBlock.DisplayValue
一貫未定義復帰をもたらす上記のコード。奇妙なことに、FieldBlock
オブジェクトをkendo.observable
に直接(匿名オブジェクトのプロパティの値としてではなく)渡すと、従属メソッドが機能します。 Here is a jsfiddleは何が効いているのか、私が避けようとしていることを示しています。
これは予期された動作ですか、それとも簡単なものがありませんか?私は2012.01.322ビルドを使用しています。
もし私が何かが欠けていないなら、剣道UIでこの作業をするために何かできることはありますか?(私はjs忍者ではないので、コードを編集するのはおそらくオプションではありません)?おそらく、この動作を達成するためのより良い方法がありますか?
私は信頼してコミュニティにこの質問double postingで、私はより積極的な応答を得る可能性があることを期待して