0
ノックアウトデータバインドオプションを使用して値のリストを作成し、その値の1つをデフォルトで「選択済み」に設定しようとしています。リストから選択してノックアウト可観測配列選択値の設定
2つのサーバー要求が
- は値(dataRepository.GetLifelines)のリストを取得し、あります
- は、値のいずれかを設定します。 (dataRepository.GetMockSelectedLifeline)
最初の要件が処理されました。選択項目へのデータバインドは「選択済み」値で正常に機能しています。
のデフォルトの「選択した値」を設定する際に問題が発生しています。誰かが私を助けてくれますか?メソッドはthis.selectValueです。選択したライフラインを一致する「名前」に設定しようとしています。
function LifelineViewModel() {
this.lifelines = ko.observableArray([{}]);
this.selectedLifeline = ko.observable();
this.updateData = function (data) {
var boundUpdate = bind(function (value) {
this.lifelines.push(value);
}, this);
$.each(data, function (index, item) {
boundUpdate(item);
});
dataRepository.GetMockSelectedLifeline(bind(this.selectValue, this));
}
this.selectValue = function (data) {
this.selectedLifeline = ko.utils.arrayFirst(this.lifelines, function (lifeline) {
return lifeline.Name === data.Name;
});
}
}
LifelineViewModel.prototype.Init = function() {
var boundUpdateData = bind(this.updateData, this);
dataRepository.GetLifelines(boundUpdateData);
}
var bind = function (func, thisValue) {
return function() {
return func.apply(thisValue, arguments);
}
}
おかげマーク。それは問題を解決しました:) ko.utilsとkoメソッドのドキュメントはありますか? –
ここには、最も有用なユーティリティ機能のいくつかを紹介した素晴らしい記事があります... http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html – bflemi3