私は、サーバーからデータが2回目に更新されたときにinit:関数が呼び出されないという問題があります。KnockoutJs - なぜinitバインディングハンドラは一度だけ呼び出されますか?
これが発生する理由はありますか?
私はマッピングプラグインを使用しています。私が理解していないもう一つの問題は、これが第1の呼び出しであるか第2の呼び出しであるかに応じて、マッピングプラグインの機能を別々に呼び出す必要があることです。
JS
function ViewMemberPopup(memberId) {
$.get("/People/GetMemberDetails?memberId=" + memberId, function (data) {
viewMemberModel.model = ko.mapping.fromJS(data);
ko.applyBindings(viewMemberModel.model, $("#memberDetailsContainer")[0]);
});
}
// binding handler
ko.bindingHandlers.renderMemberModal = {
init: function (element, valueAccessor, allBindingsAccessor) {
$(element).modal("show");
}
};
HTML:私はrenderMemberModal使用しました :結合ハンドラの真の、私はそれに接続されているプロパティを必要とする理由がわかりません。レンダリング関数を呼び出すだけでいいです...
<div class="modal fade" id="viewMemberModal" data-bind="renderMemberModal: true" style="display: none;">
<div class="modal-header">
<a class="close" href="#">×</a>
<h3>
Member Details</h3>
</div>
<div class="modal-body">
<div data-bind="template: { name: 'memberDetailsTemplate' }">
</div>
</div>
<div class="modal-footer">
<a class="btnx closeModal">Close</a>
</div>
</div>
私はモーダルポップアップを表示するためにブートストラップCSSを使用しています。
http://jsfiddle.net/rniemeyer/dNsW8/ちょうど通過し、サンプルを理解しようとしています。 ko.mapping.fromJS(dataFromServer、null、viewModel.myData()) - なぜ3つのparams、私はそれが2つかかったと思った?これに関する文書はありますか? – jaffa
また、 '$ data undefined error'が表示されます。 http://pastie.org/2766651。 – jaffa
ko.mapping.fromJSには3つのパラメータがあります。最初はデータ、2番目はマッピングオプション、3番目は更新するオブジェクトです。すでにマッピングされているオブジェクトを扱う場合は、マッピングオプションを再度使用する必要がないため、2番目のパラメータとして渡すことができます。マッピング済みのオブジェクトを渡してマッピングオプションを渡したことを認識します。 –