【问题标题】:knockoutJS "with" binding observable of observable淘汰JS“与”绑定可观察的可观察的
【发布时间】:2014-06-23 08:48:57
【问题描述】:

我正在学习淘汰赛。请任何人都可以帮助我找出问题所在。我想从左侧文本框复制到右侧文本框。在 copyValue 函数中,我不知道如何访问其他可观察对象,例如“self.RightFrontTire”
Javascript模型

var ConditionArray = [{ Id: 1, Title: 'Excellent' },
{ Id: 2, Title: 'Good' },
{ Id: 3, Title: 'Average' }]

var Size = function () {
    var self = this;`enter code here`
    self.First = ko.observable("R");
    self.Second = ko.observable("255");
    self.Third = ko.observable("21");
    self.Last = ko.observable("X");
}
var Tires = function (position) {
    var self = this;
    self.Conditions = ko.observable(ConditionArray);
    self.SelectedCondition = ko.observable("2");
    self.TireSize = ko.observable(new Size());
    self.CopyValue = function (data, event) {
        debugger;
        alert(data)
        switch (event.target.id) {
            case 'btnCopyLeftFrontToRightFront':
                debugger;
                break;
        }
    }
}
var TiresAndWheel = function () {
    var self = this;
    self.LeftFrontTire = ko.observable(new Tires());
    self.RightFrontTire = ko.observable(new Tires());
    self.LeftRearTire = ko.observable(new Tires());
    self.RightRearTire = ko.observable(new Tires());
    self.WheelTypes = ko.observableArray(WTypes);
    self.LeftFrontWheel = ko.observableArray(ConditionArray);
    self.RightFrontWheel = ko.observableArray(ConditionArray);
    self.LeftRearWheel = ko.observableArray(ConditionArray);
    self.RightRearWheel = ko.observableArray(ConditionArray);

}
 var tireAndWheel = new TiresAndWheel();
 ko.applyBindings(tireAndWheel, $('#divTireAndWheel').get(0));

JSFiddle

提前致谢。

【问题讨论】:

  • 我不太明白 - 你试过打电话给self.RightFrontTire() 吗?
  • 它说 self.RightFrontTire 未定义。

标签: knockout.js


【解决方案1】:

您的RightFrontTire 在不同的视图模型实例中定义。引用该实例以获取其中对象的值。

self.CopyValue = function (data, event) {
    console.log(tireAndWheel.RightFrontTire());
    switch (event.target.id) {
        case 'btnCopyLeftFrontToRightFront':
            break;
    }
}

更新小提琴

http://jsfiddle.net/3DgJz/8/

【讨论】:

  • 感谢您的建议,但仍然显示“tireAndWheel”未定义。你能建议替代方案吗?
  • 不,我包含了更新后的小提琴,表明它与提到的代码一起正常工作。
  • 谢谢@PW Kad。问题出在我的代码中,我在 document.ready 中创建了实例。它应该在 $(document).ready({}) $(document).ready(function () { var tireAndWheel = new TiresAndWheel(); debugger; ko.applyBindings(tireAndWheel, $('#divTireAndWheel').get(0)); }) 之前
猜你喜欢
  • 2015-10-05
  • 2023-03-11
  • 1970-01-01
  • 2013-05-19
  • 2014-11-05
  • 2012-09-08
  • 2012-07-07
  • 2015-01-25
相关资源
最近更新 更多