首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以注入一个带有knockout.js绑定的包装器div吗

我可以注入一个带有knockout.js绑定的包装器div吗
EN

Stack Overflow用户
提问于 2012-10-19 08:59:43
回答 1查看 1.6K关注 0票数 0
代码语言:javascript
复制
<div id="metro-scrollbar" data-bind="foreach: data.sections , visible: data.sections.length > 0">
    <section data-bind="foreach: $data.tiles, visible: $data.tiles.length > 0, css: { 'last' : $parent.isLastSection($index)}">
        <div data-bind="attr : {'class' : $root.getClass($data,$parentContext.$index,$index)} ">

            <div data-bind="attr : {'class' : $root.getAspectClass($data,$index)} "></div>
            <div class="live-tile">
                <span class="tile-title" data-bind="text: title, css:{'big' : bigtitle}"></span>
                <div>
                    <p>a</p>
                </div>
            </div>
        </div>
    </section>
</div>

我有上面的绑定。我需要在一些casses中为内部div注入一个包装器。

代码语言:javascript
复制
<div>
    <section>
        <-- if $myFunction() inject <div> -->
        <div>
            <div></div> // THIS IN HERE SHOULD BE THERE ALWAYS:
            <div >      // THIS IN HERE SHOULD BE THERE ALWAYS:
            </div>      // THIS IN HERE SHOULD BE THERE ALWAYS:
        </div>
         <-- if $myFunction() inject </div> -->
    </section>
</div>

我希望这是有意义的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-19 10:51:09

s093294的想法是正确的。下面是一个解决方案(和jsFiddle)的示例:

视图

代码语言:javascript
复制
<button data-bind="click: click">Toggle</button>

<section data-bind="template: { name: templateName }"></section>

<script type="text/html" id="outer-tmpl">
    <div data-bind="template: { name: 'inner-tmpl' }">
    </div>
</script>
<script type="text/html" id="inner-tmpl">
    <div>first inner div</div>
    <div>second inner div</div>
</script>

模型

代码语言:javascript
复制
viewModel = {
    toggle: new ko.observable(true),
    templateName: function () {
        return viewModel.toggle() ? 'outer-tmpl' : 'inner-tmpl';
    },
    click: function () {
        viewModel.toggle(!viewModel.toggle());
    }
}
ko.applyBindings(viewModel);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12965945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档