【问题标题】:Referencing KnockoutJs values in a foreach using javascript使用 javascript 在 foreach 中引用 KnockoutJs 值
【发布时间】:2012-05-16 04:02:09
【问题描述】:

更新这里的关键问题是我们现在拥有的 ruby​​ 对象和相关方法(在 erb 模板中处理)与我们可以提供给 KnockoutJs 等的 JSON 中的纯 viewModel 之间的阻抗不匹配。我将创建对 KO 友好的视图模型,其中包含产品该区域所需的所有信息,并更改其他区域以机会主义地使用 KO...

我是 KnockoutJs 的新手。我已经设置了我的 viewModel,并且可以像这样使用'comment form'foreach 来显示值

<!-- ko foreach: filteredProducts -->
  <span>id:</span>
   <span data-bind="text: id"></span>
   (...)
   <br/>
<!-- /ko -->

但我需要做的是引用数组条目值之一 inside 我的 foreach 像这样

<script> current_id = $data.id </script>

这样我就可以通过 ERB 使用 Id 来调用 Ruby 函数。但是这里的脚本看不到 $data。

viewModel 可见但类似问题:脚本中 $index(foreach 的另一个 KnockoutJs 上下文变量)的可见性。

欢迎提出想法 - 迈克尔

【问题讨论】:

  • 你是对的......这有点粗鲁。我将一些好的答案标记为“已回答”...
  • 我不明白你为什么要为你的 foreach 中的每个元素创建一个脚本块,你能举一个更完整的例子吗?

标签: javascript knockout.js


【解决方案1】:

答案是你不能也不应该。您不能在嵌入式脚本中引用 $index。而且你不应该在 Knockout foreach 块中嵌入脚本;你可能不会喜欢这个结果。

使用绑定在您的视图模型 (javascript) 和您的视图 (html) 之间进行交互。如果需要,请使用custom binding

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    相关资源
    最近更新 更多