avalonJS问题

牛牛1448870058 发布于 2015/01/20 21:23
阅读 1K+
收藏 0

@呢喃的猫咪 你好,想跟你请教个问题:

avalonJS里
avalon.define = function(id, factory) {
    var $id = id.$id || id
    if (!$id) {
        log("warning: vm必须指定$id")
    }
    if (VMODELS[$id]) {
        log("warning: " + $id + " 已经存在于avalon.vmodels中")
    }
    if (typeof id === "object") {
        var model = modelFactory(id)
    } else {
        var scope = {
            $watch: noop
        }
        factory(scope) //得到所有定义
        model = modelFactory(scope) //偷天换日,将scope换为model
        stopRepeatAssign = true
        factory(model)
        stopRepeatAssign = false
    }
    model.$id = $id
    return VMODELS[$id] = model
}

请问factory这个参数有啥作用? 

加载中
0
sikele
sikele

这是你看教程里的么? 这个是源代码里的一段,有两种定义 viemmodel的方式,factory方法就是老风格的一种定义方式,接下来就看教程里的用法就知道了。 

var viewmodel = avalon.define("controllername",function(vm){

vm.xxx = "";//给vm添加属性和方法

})


正美给出的回答:

 factory……收集vm属性并初始化值,并且规定哪些可监控的,哪是需要计算的,哪些是不可监控的 

牛牛1448870058
牛牛1448870058
回复 @sikele : soga,感谢感谢,么么哒
sikele
sikele
回复 @牛牛1448870058 : 这是用户定义的方法传进去的,你看我给的那个代码里面的方法,传进去后就是factory
牛牛1448870058
牛牛1448870058
但我在源码里找不到factory的定义?
0
呢喃的猫咪
呢喃的猫咪
才看到你的求助,问题解决了没呀?
返回顶部
顶部