KnockoutObservables
それらの状態をリッスンする機能が好きだからといって、viewModel の一部ではないコードで使用しています。
ただし、HtmlElement
それらが関連している破棄を破棄するときは、メモリをクリアするためにそれらを破棄する必要があります(私は推測します)。
ko.cleanNode
のノードからサブスクリプションをクリアすると仮定しますがdata-bind
、これは私が持っているものとはまったく異なります。
<div id="foo" data-bind="myCustomBinding: foo"></div>
カスタム バインディング:
ko.bindingHandlers.myCustomBinding = {
init: function (element: any, valueAccessor: () => any, allBindingsAccessor: () => any, viewModel: any, bindingContext: KnockoutBindingContext) {
new FooClass($(element), valueAccessor());
}
}
MyFooClass
その後、必要に応じて表示され、多くの新しいKnockoutObservables
パブリック プロパティが作成されます。私が作成する他のオブジェクトはこれらを使用できます。ko.cleanNode
はこれを処理しないと思いますが、どうすればそれらをきれいにできますか?
class FooClass {
disposed: boolean = false;
myInternalObservable: KnockoutObservable<any> = ko.observable("test");
constructor(public htmlElement: JQuery, public value: KnockoutObservable<any>) {
// Processing
}
dispose(): void {
if (this.disposed) {
return;
}
// Do other disposing, unbind events, delete data
// Dispose the ko?
this.disposed = true;
}
}
ありがとう