私のWebアプリケーションでは、2つのタブがあり、どちらもカスタムノックアウトコンポーネントです。可視性は次の構文で制御されます。ノックアウトコンポーネントでバインディングを1回適用する
<div id="page" data-bind="component: { name: currentTab }"></div>
ここで、currentTabは現在のタブの名前で観測可能です。
いずれのタブでも、カスタムバインディングを使用してD3.jsで視覚化しています。問題は、これらのカスタムバインディングがタブを開いた後に再初期化されることです。それらを一度ロードして再描画する必要がないようにする方法はありますか?
それらが使用して作成された、コンポーネントののviewmodelsは、再初期化されていないことに注意してください{インスタンス:新しいViewModelに()}トリック:
define(['knockout', 'text!./tab-one.html', 'jquery'], function(ko, template, $) {
function ViewModel() {
var self = this;
};
return {
viewModel: { instance: new ViewModel() },
template: template
};
});