使用knockout和jquery模板向特定div添加小部件
模板是否可以检查它要绑定到的元素的属性,然后决定它是否应该实际绑定到它 这个想法是,我将拥有许多使用knockout和jquery模板向特定div添加小部件,jquery,templates,knockout.js,Jquery,Templates,Knockout.js,模板是否可以检查它要绑定到的元素的属性,然后决定它是否应该实际绑定到它 这个想法是,我将拥有许多divs,模板将根据div的id和数据中的id绑定到每个divn次 @**@ {{每个(索引、小部件)小部件} {{if widget.col==cols[index].id} ${widget.name} {{/if} {{/每个}} 对应的JS: var cols = $('.col'); function widget(name, col) { return { n
div
s,模板将根据div的id和数据中的id绑定到每个div
n次
@**@
{{每个(索引、小部件)小部件}
{{if widget.col==cols[index].id}
${widget.name}
{{/if}
{{/每个}}
对应的JS:
var cols = $('.col');
function widget(name, col) {
return {
name: ko.observable(name),
col: ko.observable(col)
};
}
var viewModel = {
widgets: ko.observableArray(
[new widget("Widget 1", col1),
new widget("Widget 2", col2)])
};
ko.applyBindings(viewModel);
这就是我的想法,但我似乎无法取得进展
如果您有任何想法,我们将不胜感激。我知道您可以通过查看函数结果动态更改要绑定的模板。也许你可以改变实现你想法的方式
在示例代码中,您可以在模板内决定要渲染的内容。您可以在顶层通过检查数据来决定绑定哪个模板。这里是一个。您希望有一个小部件列表,并让模板确定需要使用哪些小部件?例如,您不能将字符串数组绑定到模板吗。然后每个字符串将代表一个小部件名称,对于每个字符串,您将呈现一个div。然后让jquery查找具有“widget”属性的div(例如),并将适当的小部件绑定到它(假设这些小部件是jquery插件)。我没有把它作为答案发布,因为我有点不确定问题是什么。因为只有在有数据绑定的情况下,模板才会绑定到元素:“模板”attributeThanks伙计们——我是根据你所说的找到的,这很好地解决了这个问题