【发布时间】:2012-03-31 10:24:12
【问题描述】:
假设您有一个简单的淘汰赛循环
<!-- ko foreach: data -->
<div ... show something </div>
<!-- /ko -->
我想在循环的每次迭代中运行一些额外的 JavaScript 代码是什么(只想将此代码放在视图中而不是模型中)。不确定使用脚本标签是否合适,我认为如果代码在敲除模板中,那将不会起作用,因为该模板已经包含在脚本标签中。
在其他一些情况下,我虽然能够在淘汰视图中运行正常的 JavaScript 代码,但会很有用。这不是我经常想要做的事情,但似乎在极少数情况下,如果我可以只使用常规 JS 而不是更改其他东西会更容易。
【问题讨论】:
-
只是进一步补充,在一种特殊情况下,我正在循环一个大数组并将一个列表返回给用户。在这个循环的某个时刻,我希望列表中的其余行以不同的方式呈现。例如,我可以在我的模型中有一个函数来确定该行是否应该以一种或另一种方式呈现,但是这种比较操作并不直接,并且需要操作 2 个字符串来进行比较。
-
我考虑的另一种选择是在循环中使用标志。一旦满足所需条件,将设置一个标志,其余行将以不同方式呈现。 (在循环中进行比较更便宜,因为我可以只查找精确的字符串匹配,而不是操作字符串来确定一个字符串是否在另一个之前,如果我在模型中进行比较则需要这样做)。我宁愿将标志本地存储在循环中,而不是将标志存储在模型中。这就是为什么我想在淘汰赛循环中运行 JS。
-
除此之外,我还想知道一种在淘汰视图中运行普通 JavaScript 的粒子方法,因为在其他情况下我可能会在极少数情况下需要它
标签: javascript mvvm knockout.js