【发布时间】:2014-07-02 10:54:06
【问题描述】:
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 属性。
现在我决定在其他地方使用这个模板,但我希望它绑定到 orderNo 而不是 userName,并添加另一个名为 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
}
【问题讨论】:
-
您的模板没有太多共同点。为什么不创建两个模板?它会更简单,更容易阅读
-
避免创建大量模板的需要。解决方案我必须创建一个 javascript createTemplateFunction 接受值,例如地址,订单号。然后有一些代码为每个值创建一个跨度标签,设置它的数据绑定属性
-
好吧,你可以使用
if绑定,它仍然更具可读性
标签: knockout.js