【问题标题】:Managing nested dependent data in Knockoutjs在 Knockoutjs 中管理嵌套的依赖数据
【发布时间】:2015-12-08 20:43:27
【问题描述】:

我有一个 JSON 对象,其中包含 models 数组。每个模型包含params 数组,每个参数包含valuesvalues 应该在页面上显示为单选按钮或选择,用户可以选择它。我需要构建 HTML,以便如果用户选择值,那么变量 selectedValues 会保持像这样的对象 {param_id: value_id, another_param_id: another_value_id} 等。此变量应显示用户选择的参数的值。问题是我不知道会有多少参数和多少价值——它是完全动态的 JSON,由服务器生成。

演示小提琴 http://jsfiddle.net/z68tx53c/1

【问题讨论】:

  • @Dandy 请查看更新后的答案
  • 上面的代码抛出 Uncaught TypeError: Unable to process binding "foreach: function (){return selectedModel().params }" Message: Unable to process binding "if: function (){return alias == 'material' }" 消息:无法处理绑定“foreach: function (){return values }”消息:无法处理绑定“checked: function (){return $root.selectedValues()[$parent.id] }”消息:无法读取未定义的属性“1”

标签: javascript json knockout.js


【解决方案1】:

如果您在selectedValues() 为空时使用selectedValues()[1](在填充之前就是这样),您将收到此错误:Cannot read property '1' of undefined。将使用 selectedValues 的 html 包装在 withif 绑定中,以便仅当 selectedValues 不为空时包含节点。

【讨论】:

  • selectedValues 不由服务器填充,它包含由用户选择的值的 id。有点误会,所以我会尝试为此制作一个jsfiddle。
  • 是的。还有另一个由服务器填充的 JSON,每个参数中包含 paramsvalues。用户可以选择values,我需要selectedValues 中的某种“矩阵”,其中param.id 对应于value.id,由用户选择。
  • 这里是jsfiddle.net/z68tx53c/1 我写了一些cmets来全面介绍我的问题
  • jsfiddle.net/z68tx53c/2 向您展示我的意思。我将使用 selectedValues 的 html 包装在一个“if”绑定中,以便仅当 selectedValues 不为空时包含节点。
  • 对不起,我不明白这如何解决我的问题。我要做的就是从 HTML 分配selectedValues[$parent.id]。正如您从<h3 data-bind="text: ko.toJSON(selectedValues)"></h3> 看到的那样 - 它不起作用
猜你喜欢
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 2022-12-15
  • 2014-09-03
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多