ノックアウトjsを使用して、Webサービスにjsonレンダリングをネストされたタグのセットにフィードさせました。(よく働く)。
だから私が今やりたいことは、値を変更するためのポップアップ編集ウィンドウ(KendoUI\jqueryでセットアップ済み)を用意することです。
問題は、私が昼食に出かけているかどうかわからないことです.これは可能です.編集を処理するために、バインドされたオブジェクトを別のものにどのように渡しますか?
ノックアウトjsを使用して、Webサービスにjsonレンダリングをネストされたタグのセットにフィードさせました。(よく働く)。
だから私が今やりたいことは、値を変更するためのポップアップ編集ウィンドウ(KendoUI\jqueryでセットアップ済み)を用意することです。
問題は、私が昼食に出かけているかどうかわからないことです.これは可能です.編集を処理するために、バインドされたオブジェクトを別のものにどのように渡しますか?
私は自分のコードで次のようなことをします:
ビューモデルで、ログイン関数のインスタンスを作成します。
this.loginDialog = ko.observable(new LoginDialog(this));
これは、次のように定義されています。
function LoginDialog(viewModel) {
var self = this;
this.viewModel = viewModel;
this.userid = ko.observable();
this.password = ko.observable();
this.open = ko.observable(false);
this.message = ko.observable();
// more here
}
次に、次のバインディングがありdialog
ます。
ko.bindingHandlers.dialog = {
init: function(element, valueAccessor, allBindingsAccessor) {
var options = ko.utils.unwrapObservable(valueAccessor());
setTimeout(function() {
$(element).dialog(options || {});
}, 0);
//handle disposal (not strictly necessary in this scenario)
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
$(element).dialog("destroy");
});
},
update: function(element, valueAccessor, allBindingsAccessor) {
var shouldBeOpen = ko.utils.unwrapObservable(allBindingsAccessor().openWhen);
var options = ko.utils.unwrapObservable(valueAccessor());
var $elem = $(element);
var dynamicOptions = ko.utils.unwrapObservable(allBindingsAccessor().dynamicOpts) || {};
$elem
.dialog(shouldBeOpen ? "open" : "close");
if (dynamicOptions.title)
$elem.dialog("option", "title", ko.utils.unwrapObservable(dynamicOptions.title));
}
};
私はこのように呼んでいます
<!-- ko with: loginDialog -->
<div id='logindlg' class="dialog"
data-bind="dialog: {autoOpen: false, modal: true, closeOnEscape: false, title: 'Login', height: 300, width: 550, dialogClass: 'no-close', resizable: false}, openWhen: open">
<!-- more stuff here -->
</div>
<!-- /ko -->