在knockoutjs中是否有办法创建一个淘汰模板,但根据传递给它的值注入更多HTML。
示例:
<script type="text/html" id="userMessageTemplate">
<div class="chatContent">
<span data-bind="text: userName"></span>
<span data-bind="text: userMessageAlert "></span>
</div>
</script>
此模板目前有两个span标记,每个标记都依赖于模型中的userName和userMessgeeAllert属性。
现在我决定在其他地方使用这个模板,但不是userName,我希望它绑定到orderNo,还添加另一个名为Address的span标记:
<script type="text/html" id="userMessageTemplate">
<div class="chatContent">
<span data-bind="text: OrderNo"></span>
<span data-bind="text: userMessageAlert "></span>
<span data-bind="text: Address "></span>
</div>
</script>
目前我只想创建另一个模板。但我想注入值,并根据这些值动态创建模板:
function (orderNo, userMessageAllert,Address)
{
// now based on the values create template
}
答案 0 :(得分:1)
在这种情况下,您可以通过将一组属性传递给模板并使用foreach绑定来修复它。
<script type="text/html" id="userMessageTemplate">
<div class="chatContent" data-bind="foreach: $data">
<span data-bind="text: $data"></span>
</div>
</script>
一般来说,我会看看Knockout components。还没有,但很快,它可以让你将数据传递到你的模板,它可以智能地响应。