How to unsubscribe the subscribed function in knockout?
javascript, knockout.js
Solution
Store results of call to subscriptions in a variable (or, in your case, in an array).
When you want to unsubscribe, simply call dispose on each subscription.
Fully described here - http://knockoutjs.com/documentation/observables.html
Your code will look like this:
//store subscriptions in array
var subscriptions = [];
for ( var i in myViewModel ) {
var model = myViewModel[i];
subscriptions.push(model.subscribe( self.notifyChange.bind( model, i ) ));
}
//unsubscribe
for(var i in subscriptions) {
subscriptions[i].dispose(); //no longer want notifications
}
Problem
I already subscribe the function to listen the property value change using ko. ``` var self = this; $( document ).ready( function () { var postbox = new ko.subscribable(); var myViewModel = { FirstName: ko.observable( "Bert" ), LastName: ko.observable( "pual" ) }; var sub = null; for ( var i in myViewModel ) { var model = myViewModel[i]; model.subscribe( self.notifyChange.bind( model, i ) ); } $( '#unsubscribeButton' ).click( function () { // here i want to unsubscribe. } ); ko.applyBindings( myViewModel ); }); notifyChange = function ( PropName, newValue ) { var self= this; ); } ``` here i want to unsubscribe the notifyChange from myViewModel's property one by one, how to do this?