如何在父级布局中使用挖空组件视图?

帕维尔·马蒂诺夫(Pavel Martynov)

我正在研究仅用淘汰赛替代ASP.NET MVC +淘汰赛,我想删除ASP.NET并仅获取静态js + html。

我的ASP.NET视图由Partial视图组成(我在项目中称其为小部件),该Partial视图很容易用Knockout组件替换。.但是我有一个问题:ASP.NET Partial视图有一个Layout(每个小部件都有一些html装饰) ),如何实现类似的Knockout组件视图?

简化示例。旧的asp.net方案:

View.cshtml:

<div>
    @Html.Partial("SomeWidget")
</div>

SomeWidget.cshtml:

@{
    Layout = "~/Views/Shared/_WidgetLayout.cshtml"; <!-- parent layout for widget -->
}
<span>This is some widget</span>

_WidgetLayout.cshtml:

<div>
    <span>This is decorator for every widget</span>
    @RenderBody() <!-- render widget view here (SomeWidget.cshtml in this example) -->
</div>


新的仅限淘汰赛方案:

View.html:

<div>
    <some-widget></some-widget>
</div>


View.js:

ko.components.register('some-widget', { require: 'app/SomeWidget' });

SomeWidget.html:

<span>This is some widget</span>


SomeWidget.js:

var view = require('text!/views/SomeWidget.html');
return { template: view };


如何在淘汰赛中替换_WidgetLayout.cshtml?

广吾

您可能有几种方法可以执行此操作。我能想到的最简单的方法是拥有一个模板组件,然后将小部件嵌套在其中。KO组件支持嵌套。

您可以这样定义模板组件:

    ko.components.register("widget-template", {
        viewModel: function(params) {
            var self=this;
            self.WidgetName = params.widget;
        },
        template: "<div class='b'><span>This is decorator for every widget</i>
<div data-bind='component: { name: WidgetName }'></div></div>"
    });

要使用此功能,您可以将template-widget放入HTML中,然后将小部件的名称作为参数传递:

<widget-template params="widget: 'widget1'"></widget-template>

然后,将小部件定义为另一个组件:

ko.components.register("widget1", {
    template: "<h3>Widget One</h3>"});

因此,现在您有了一个可重复使用的模板,可以包装任何组件。您可以在Knockout文档中看到有关此绑定的更多信息

在此处查看完整的JS小提琴:http//jsfiddle.net/Quango/a8h2bwtc/

请注意,您还可以将名称设置为可观察的名称,而不是静态值,如下所示:http : //jsfiddle.net/Quango/tnphvvgd/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在父级布局中使用挖空组件视图?

来自分类Dev

如何在Emberjs中使用父级形式在组件中生成的值?

来自分类Dev

如何在android布局中使用视图?

来自分类Dev

AngularJS,如何在父级中使用子级的JSON?

来自分类Dev

如何传递要在子组件中使用的父级状态?

来自分类Dev

如何在父组件中使用子组件的状态?

来自分类Dev

如何在函数字段中使用父级?

来自分类Dev

如何在单个视图中使用多个布局

来自分类Dev

如何在 NSSplitView 的子视图中使用自动布局?

来自分类Dev

如何在父级的子级组件中设置状态?

来自分类Dev

如何使用uiautomator获取视图的父级?

来自分类Dev

如何在Lisp中使用父级和子级指针制作Splay树

来自分类Dev

如何在Java中使用AspectJ记录父级和子级的线程ID

来自分类Dev

如何在php中使用动态父级从数组中获取子级

来自分类Dev

如何在UIScrollView中获取ContentView以使用自动布局填充父级

来自分类Dev

如何获得组件的父级的父级?

来自分类Dev

如何获得组件的父级的父级?

来自分类Dev

如何在GridLayout的相对布局父级中居中?

来自分类Dev

如何在GridLayout的相对布局父级中居中?

来自分类Dev

如何在父级活动中访问片段布局?

来自分类Dev

如何在父组件中使用Vue.js子组件中的数据?

来自分类Dev

如何在父组件中使用来自子组件的 ngModel?

来自分类Dev

如何在其父级布局上方绘制视图?

来自分类Dev

如何在带有工具栏和底部导航视图的布局中使用滚动视图?

来自分类Dev

如何在Angular 2中将对象从“父级”组件传递到“子级”组件?

来自分类Dev

如何在父级中使用复合ID创建双向一对多关系?

来自分类Dev

如何在具有与模块并行存储的父级的多模块项目中使用 jqassistent?

来自分类Dev

如何在Vue中用子路由组件替换父视图

来自分类Dev

如何在Android中没有活动和片段的功能中使用布局组件?

Related 相关文章

  1. 1

    如何在父级布局中使用挖空组件视图?

  2. 2

    如何在Emberjs中使用父级形式在组件中生成的值?

  3. 3

    如何在android布局中使用视图?

  4. 4

    AngularJS,如何在父级中使用子级的JSON?

  5. 5

    如何传递要在子组件中使用的父级状态?

  6. 6

    如何在父组件中使用子组件的状态?

  7. 7

    如何在函数字段中使用父级?

  8. 8

    如何在单个视图中使用多个布局

  9. 9

    如何在 NSSplitView 的子视图中使用自动布局?

  10. 10

    如何在父级的子级组件中设置状态?

  11. 11

    如何使用uiautomator获取视图的父级?

  12. 12

    如何在Lisp中使用父级和子级指针制作Splay树

  13. 13

    如何在Java中使用AspectJ记录父级和子级的线程ID

  14. 14

    如何在php中使用动态父级从数组中获取子级

  15. 15

    如何在UIScrollView中获取ContentView以使用自动布局填充父级

  16. 16

    如何获得组件的父级的父级?

  17. 17

    如何获得组件的父级的父级?

  18. 18

    如何在GridLayout的相对布局父级中居中?

  19. 19

    如何在GridLayout的相对布局父级中居中?

  20. 20

    如何在父级活动中访问片段布局?

  21. 21

    如何在父组件中使用Vue.js子组件中的数据?

  22. 22

    如何在父组件中使用来自子组件的 ngModel?

  23. 23

    如何在其父级布局上方绘制视图?

  24. 24

    如何在带有工具栏和底部导航视图的布局中使用滚动视图?

  25. 25

    如何在Angular 2中将对象从“父级”组件传递到“子级”组件?

  26. 26

    如何在父级中使用复合ID创建双向一对多关系?

  27. 27

    如何在具有与模块并行存储的父级的多模块项目中使用 jqassistent?

  28. 28

    如何在Vue中用子路由组件替换父视图

  29. 29

    如何在Android中没有活动和片段的功能中使用布局组件?

热门标签

归档