小编The*_*eme的帖子

Knockout JS - viewModel访问

我正在写一份预订申请.预订过程相当复杂,并且有很多依赖关系因此我决定使用knockout帮助我观察更改并更新UI.

我开始实施客户名单.表单中的第一个客户将是必须输入其详细信息的客户,其他客户只需要姓名.我想我可以添加一个dependentObservable来检查当前客户是否是customers数组中的第一个客户,以决定是否显示其他字段.

问题是,当尝试从客户访问viewModel时,我只得到"未定义".我尝试将对viewModel的引用传递给客户,但这也不起作用.我究竟做错了什么?可以访问viewModel吗?

这是代码:

var customer = function(){
    this.firstName = ko.observable('');
    this.lastName = ko.observable('');
    this.fullName = ko.dependentObservable(
        function(){
            return this.firstName() + " " + this.lastName();
        },
        this
    );
    this.gender = ko.observable('');
    this.diet = ko.observable('');
    this.primaryCustomer = ko.dependentObservable(
        function(){
            console.log(viewModel);
            return viewModel.customers.indexOf(this) == 0;
        },
        this
    );
    this.email = ko.observable('');
}

var viewModel = {
    customers: ko.observableArray([new customer()]),
    addCustomer: function(){
        this.customers.push(new customer());
    },
    removeCustomer: function(customer){
        this.customers.remove(customer);
    }
}


ko.applyBindings(viewModel);
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

2
推荐指数
1
解决办法
7228
查看次数

标签 统计

javascript ×1

knockout.js ×1