问题标签 [jsviews]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsrender - 替代方法
对不起这个noobish问题。我觉得必须有更好的方法,但我没有看到它。我不想在按钮单击中循环查找 ID。我只想传递要删除的索引。
这就是我认为我必须做的事情
html
js
这就是我想做的
html
js
javascript - JsView无法读取未定义的属性'_cId'
我遇到了与观察动态创建的项目的属性变化有关的奇怪行为。
场景: 我有一个页面,我的用户可以在其中创建联系人。他们创建的联系人数量各不相同(在一些条件下)。
我当前的解决方案: 我创建了一个联系人模板。每次用户点击添加按钮时,我都会使用 Observable API 添加一个新的联系人对象。现在的问题是,当我尝试删除联系人时,联系人已从底层数组中删除,但不会从 UI 中删除。此外,我收到一个异常,说:“无法读取未定义的属性'_cId'”。
这是我的 JavaScript 代码:
我创建了一个 JsFiddle 来演示异常,我希望有人可以指导我如何解决它。
javascript - jsviews - 更新数组元素的字段
我对 jsviews 有疑问。我想绑定一个元素数组。每个元素都是一个对象。元素是动态添加的。每个元素的一个字段的值基于另一个字段计算。如果不每次都刷新数组怎么办?
js:
html:
我创建了说明问题的jsfiddle 。
jquery - FOR 中的自定义变量与 JsRender
我正在从 jQuery 模板迁移到 JsRender,但我不知道如何{{each}}
将{{for}}
使用 jQuery 模板,我可以执行以下操作:
Whereobject.items
是一个值数组,我可以定义一个自定义index
和item
变量来显示数据(在本例中为i
和val
)。但是我如何在 JsRender 中做同样的事情呢?
我知道index
并且data
可以显示与 jQuery 模板相同的内容,但是如何定义自定义变量?这甚至可能吗?
更新:这样做的原因是为我正在使用的变量提供一些上下文。让我用例子来解释(jQuery tmpl)
您的引擎可以使用这种语法/逻辑吗?
jquery-templates - view() 返回空视图
我已经包含了来自http://www.jsviews.com/download/jsviews.js的 jsview.js(包括 JsRender、JsObservable 和 JsViews)。我也有渲染行的 html 表。
我需要执行3个案例:
- 删除旧行并将新呈现的行插入到表中,在插入之前对它们进行了一些操作(初始化等)
- 不要删除行。只需在某行之后插入新的渲染行,在插入之前对它们进行一些操作(初始化等)
- 在事件“
onclick
”上,我需要获取行数据:var rowData = $row.view().data;
当我使用渲染时:var $rows = $(compiledTmpl.render(dataArray, helperObj));
我可以对渲染的行做任何事情。我可以初始化它们并在某行之后插入它们。但是当事件“onclick”引发时,我得到空数据(rowData
)。为什么?
当我使用链接时:compiledTmpl.link($table, dataArray, helperObj)
我无法获得渲染行。为什么?我无法初始化它们并在某行之后插入它们。但是当事件“onclick”引发时,我得到的不是空数据(rowData
)。
如何在我的情况下?
更新:https ://jsfiddle.net/chdcfsnv/4/
更新 2:很快(而且很简单),我想要渲染新行。在现有行之后添加它们。稍后我需要能够获取链接的行数据。到目前为止我不需要的其他功能。
jsviews - jsviews如何使列表元素被选中
我正在尝试为用户显示项目列表。在选择列表中,应该选择“key”用户属性的当前值,但这不起作用。
这是我的代码片段:
http://jsfiddle.net/er2f1rw3/1/
谁能帮我理解为什么这不起作用?
view-helpers - JsViews/JsRender for 循环中的临时/上下文辅助变量
我正在尝试将一个临时/上下文变量存储在一个 for 循环中,以便以后在另一个 for 循环中使用。我使用http://borismoore.github.io/jsrender/demos/step-by-step/11_accessing-parent-data.html作为参考。
实例数组中的每个数据对象都有一个设置为特定值的 templateId 属性,并且模板数组中的每个对象都有一个 id 属性。
第一个问题是我的调试 {{:~templateId}} 没有出现。似乎没有分配变量。
仅在模板标记中使用 ~helper 集后,我尝试在我的“viewmodel”中明确定义助手
现在,当我没有在 for 循环中设置它时,值会被打印出来,但是当我在 for 循环中设置它时,它会再次消失。
下一个问题可能是 ~templateId 助手在 ~root 范围的 for 循环中不可用,因为助手应该只在实例循环的子视图中可用?
最终目标是在select中选择正确的值,所以如果有其他解决方案,请告诉。
jsrender - 查看未更新可观察到的更改
我正在尝试在更新列表的容器时重新呈现列表:
当我使用 $.observable(data).setProperty("selectedScenario",scenario) 时,没有任何变化。在http://jsfiddle.net/ep76m4af/1/中,您可以看到这一点。ObserveAll 显示数据本身已更新并且事件已正确触发。
jsrender - jsviews 反应式助手不会更新依赖 = [...] 定义
我指出的助手取决于模型中的变量,并且我在模板中使用的助手在更新依赖的变量时不会重新呈现,如http://jsfiddle.net/ep76m4af/3/中所示
下面是数据和模板助手定义:
这是相关的模板代码:
将实例添加到 data.selectedInstances 时
视图不会相应更新。
我的代码的“.depends”部分不正确还是有其他问题?
顺便说一句,我需要将选择排除在场景之外,因为场景将存储在数据库中,并且选择仅在客户端。
javascript - jsViews / jsRender 与模板内的丰富表达式
快速提问:我正在使用 jsViews 来呈现 HTML 模板。我想要某种翻译。现在我的应用程序返回全局变量“语言”,其值等于:pl || zh || 德_
如何使用全局变量“语言”来减少 JSON 中负责翻译的数据?
1)。JSON数据
2)。工作 HTML 模板,但语言值是静态写入的
3)。我想将 {{props pl}} 更改为 {{props *language}} 以在模板中动态获取语言但如何正确编写它?
我知道:
那么如何在 {{if}} 或 {{props}} 或 {{for}} 中使用这个表达式?
先感谢您!!