创建模板

时间:2014-07-02 10:54:06

标签: knockout.js

在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 
}

1 个答案:

答案 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。还没有,但很快,它可以让你将数据传递到你的模板,它可以智能地响应。