使用javascript在foreach中引用KnockoutJs值

使用javascript在foreach中引用KnockoutJs值,javascript,knockout.js,Javascript,Knockout.js,更新这里的关键问题是ruby对象和我们现在使用的相关方法之间的阻抗不匹配(在erb模板中处理)以及JSON中的纯viewModels,我们可以将其提供给KnockoutJs等。我将创建KO友好的viewModels,其中包含产品此区域所需的所有信息,并将其他区域更改为机会主义地使用KO 我是个新手。我已经设置了viewModel,可以像这样使用“注释表单”显示每个视图的值 <!-- ko foreach: filteredProducts --> <span>id:&

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

我是个新手。我已经设置了viewModel,可以像这样使用“注释表单”显示每个视图的值

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

身份证件:
(...)

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

<!-- ko foreach: filteredProducts -->
  <span>id:</span>
   <span data-bind="text: id"></span>
   (...)
   <br/>
<!-- /ko -->
<script> current_id = $data.id </script>
current_id=$data.id
这样我就可以通过ERB使用Id来调用Ruby函数。但是$data对这里的脚本不可见

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


欢迎想法-Michael答案是你不能也不应该。不能从嵌入式脚本中引用
$index
。而且,您不应该将脚本嵌入到敲除
foreach
块中;你可能不会喜欢这个结果


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

你说得对。。。那有点粗鲁。我将一些好的答案标记为“已回答”…我不明白为什么要为foreach中的每个元素创建一个脚本块,您能给出一个更完整的示例吗?