Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用knockout和jquery模板向特定div添加小部件_Jquery_Templates_Knockout.js - Fatal编程技术网

使用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伙计们——我是根据你所说的找到的,这很好地解决了这个问题