您现在的位置:首页 >> 前端 >> 内容

knockout监控对数据的调用的实现方法

时间:2017/12/11 11:23:56 点击:

  核心提示:可能使用了观察者模式,在ko.observable中埋伏了.fire(),每当调用observable对数据进行更改时,fire()会通知viewmodel,以这种方法监控对数据的调用。以下是我理解的...

可能使用了观察者模式,在ko.observable中埋伏了.fire(),每当调用observable对数据进行更改时,fire()会通知viewmodel,以这种方法监控对数据的调用。以下是我理解的实现方式:

function observable(value){
    return function(replaceVal){
        if(replaceVal){
            ko.fire() //通知viewModel有改动
            value = replaceVal;
        }else{
            return value;
        }
    }
} 

用data-bind绑定view和model。考虑到表现和行为的分层,data-bind最好在js中的init函数中写入。 在octopus模式中,对data的取用往往需要在octopus对象上增添一个相应的method,这很笨拙且浪费资源。ko用obsevable返回的函数来代理data变量,解决了这个问题。

Tags:KN NO OC CK 
作者:网络 来源:sinat_3499