JSViews array.length 更新不正确

JSViews array.length updating incorrectly

我用 JSViews 创建了一个简单的分页视图。我有两个问题。

这是一个fiddle:JSViews Pagination Fiddle

1) 当使用 array.length 时,它似乎在我更新数据后发生了变化,尽管数组的长度保持不变:

这一行:

{^{for questions ~s = start ~c=count ~l=totalQuestions}}

最初是

{^{for questions ~s = start ~c=count ~l=questions.length}}

所以我不需要在数据 (navData) 中包含问题总数。

使用 .length,在我更新数组后(我知道我做错了,但这是第二个问题!!!)questions.length 从 10 变为 20,因此渲染出错。

谁能看出我做错了什么,这当然可能与第 2 部分有关。

  1. 我无法通过 setProperty() 仅更改 "start" 来重新呈现视图,因此我使用了 hack。有没有更好的方法来做这个模板?

这是一个update of your sample

您需要将您的 {{if}} 标签设置为数据链接 ({^{if}}) 以响应 ~s 中的更改,如:

{^{if #getIndex() == ~l-1 && (~s + ~c < ~l -1) }}

你奇怪的渲染结果和明显的 questions.length 变化可能是将 <span> 直接放在 <ul> 中的副作用,这是无效的。 JsViews 在 <ul> 中假定有效的 HTML 结构。看我修改过的jsfiddle...

如果您继续看到问题,请告诉我...