Je souscris déjà la fonction pour écouter le changement de valeur de propriété en utilisant 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;
);
}
ici, je veux me désabonner un par un de la propriété notifyChange de myViewModel, comment faire?
Stockez les résultats de l'appel aux abonnements dans une variable (ou, dans votre cas, dans un tableau).
Lorsque vous souhaitez vous désabonner, appelez simplement dispose de chaque abonnement.
Entièrement décrit ici - http://knockoutjs.com/documentation/observables.html
Votre code ressemblera à ceci:
//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
}