knockout.js - 请帮助我理解为什么这个计算出的 observable 无法访问 observable。

标签 knockout.js

这是 fiddle - http://jsfiddle.net/iRamesh/36N4m/

不知道为什么计算的 observable 没有返回任何值。我知道如何使它工作,但不确定为什么当前的代码不起作用。请帮忙

最佳答案

计算出的 observable 会在创建时立即进行评估。在您的情况下,viewModel尚未创建,因此这会导致错误。

几个选择:

- 在初始对象文字之外创建它:

var viewModel = {
    firstName: ko.observable("r"),
    lastName: ko.observable("j"),
 };
viewModel.fullName = ko.computed(function() {
        return viewModel.firstName();
});

- 在函数中创建您的 View 模型:
var ViewModel = function() {
    this.firstName = ko.observable("r");
    this.lastName = ko.observable("j");
    this.fullName = ko.computed(function() {
            return this.firstName();
    }, this);
};

ko.applyBindings(new ViewModel());

关于knockout.js - 请帮助我理解为什么这个计算出的 observable 无法访问 observable。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9305766/

相关文章:

javascript - 文本区域/wysiwyg 上的 Knockout JS 和 iPad 更新问题

javascript - MVVM 中模型的职责

javascript - KnockOut 的计算函数问题

javascript - 使用 Knockoutjs 在客户端添加和删除项目

javascript - jQuery - ReplaceWith 更新 HTML 不会生成图像或链接

javascript - knockout 'for' 绑定(bind)?

javascript - knockout : changing options in select list without clearing value in view-model

javascript - KnockoutJS - 将计算值添加到可观察数组

knockout.js - 是否可以在计算中使用扩展器?

javascript - 我如何仅通过其可观察属性的变化来了解 knockout.js ViewModel 的变化?