如何在挖空中取消订阅的函数
How to unsubscribe the subscribed function in knockout?
我已经订阅了该函数以使用 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;
);
}
在这里我想取消订阅通知从myViewModel的属性中一一更改,该怎么做?
将调用订阅的结果存储在变量中(在本例中为数组中(。
如果要取消订阅,只需在每个订阅上调用 dispose。
此处完整描述 - http://knockoutjs.com/documentation/observables.html
您的代码将如下所示:
//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
}
相关文章:
- jquery点击函数select&取消选择
- 如何取消object.prototypes javascript的一个函数
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- 如何在调用去抖函数之后和执行之前取消该函数
- 当函数取消隐藏 2 个元素时,如何在 javascript 中显示/隐藏
- 元素单击处理程序由一个神秘的函数取消设置
- 我可以使用一个函数让所有复选框都被选中或取消选中吗(不使用点击触发器)
- 用变元取消对函数的调用
- .submit JS函数在Safari中不显示CSS覆盖(除非我取消页面加载)
- 在再次被调用之前取消调用函数
- HTMLJavascript-如何向输入语句添加函数并隐藏输入语句,除非选中“是”,然后取消隐藏
- 在javascript中使用.replacement()函数时,请避免取消挂起事件处理程序
- 取消绑定由加载jQuery'的外部脚本添加的事件;s的getScript函数
- 使用构造函数创建的数字没有其值作为属性,请取消String与构造函数的链接
- Javascript:通过另一个函数取消提示
- Javascript函数用于选择/取消选中radgrid标头模板中的所有复选框
- 通过javascript函数取消设置php数组元素
- 取消绑定 e.prevent默认 从另一个函数转发到链接单击
- 如何取消调用链下游的其他 onclick 函数调用
- 包含函数的对象文字表示法的执行速度是否比(全局范围)普通函数(取消引用)更快