我目前正在使用带有一个视图模型的 KnockoutJS,该视图模型具有我的站点所需的所有属性。当我一开始初始化视图模型时,我确保将 null observables 分配给相关属性,以便稍后更新它们时,将触发事件。我正在尝试对 knockoutfire 集合做同样的事情——特别是我想在用户登录后加载数据而不必重新应用绑定——但是当我这样做时感觉有点沉重。这就是我所拥有的,也是我实际上能够在以后不重新应用绑定的情况下使其工作的唯一方法:
// init view model
var viewModel = {
prop1: ko.observable(null),
firebase1: KnockoutFire.observable(recommenderFirebase.child('ratings/suggestions'), {
'.limit': 0,
"$suggestion" : {
accountID: true,
itemID: true,
relevance: true
}
});
}
// apply all bindings for life of app
ko.applyBindings(viewModel);
// login user and re-populate firebase1
firebaseOOO.initAuthClient(function(user) {
viewModel.firebase1 = KnockoutFire.observable(recommenderFirebase.child('ratings/suggestions').child(user.id), {
'.limit': 20,
"$suggestion" : {
accountID: true,
itemID: true,
relevance: true
}
});
});
有没有更好、更清洁、更有效的方法来做到这一点?