【发布时间】:2016-07-06 12:50:04
【问题描述】:
我有使用显示模块模式实现的 ViewModel。我正在使用可订阅的全局淘汰赛来实现这些数据之间的解耦传递。我现在正在做的是,在 master-ViewModel 中创建一个 ViewModel 的实例:
NameSpace.MasterViewModel = function(){
var viewModel = new viewModel(),
initSubscription = function(){
viewModel.initSubscription();
};
return {
initSubscription: initSubscription
}
}
并像这样在 ViewModel 中初始化订阅:
NameSpace.ViewModel = function(){
var data,
initSubscription = function(){
ko.postbox.subscribe( "New Data"function(newData){
this.data = newData;
}, this);
};
return {
data: data,
initSubscription: initSubscription
}
}
这可行,但我想知道是否有办法在创建 ViewModel 时初始化订阅?这样我就可以避免公共初始化函数。
【问题讨论】:
-
在
ViewModel构造函数执行的时候不能只执行initSubscription吗?
标签: javascript knockout.js publish-subscribe revealing-module-pattern