knockout.js – 使用KnockoutJS计算属性的原型

前端之家收集整理的这篇文章主要介绍了knockout.js – 使用KnockoutJS计算属性的原型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否建议在原型对象上创建计算属性

这是我在下面尝试的但是firstName绑定将函数作为字符串返回而不是执行它(http://jsfiddle.net/W37Yh).

var Homeviewmodel = function(config,$,undefined) {

    if (!this instanceof Homeviewmodel) {
        return new Homeviewmodel(config,undefined);
    }

    this.firstName = ko.observable(config.firstName);
    this.lastName = ko.observable(config.lastName);
};

Homeviewmodel.prototype.fullName = function() {
    return ko.computed(function() {
        return this.firstName() + " " + this.lastName();
    },this);
};

var model = new Homeviewmodel({
    firstName: "John",lastName: "Smith"
},jQuery);

ko.applyBindings(model);​

解决方法

这不是Actual viewmodel,因为尚未创建实例.你可以做
viewmodel = function() {
   this.fullName = ko.computed(this.getFullName,this);
};

viewmodel.prototype = {
   getFullName: function() {
      return this.firstName() + " " + this.lastName();
   }
};

猜你在找的JavaScript相关文章