如何在一个页面中多次组合相同的小部件

Posted

技术标签:

【中文标题】如何在一个页面中多次组合相同的小部件【英文标题】:How to compose same widget multiple times in a page 【发布时间】:2019-10-28 03:53:57 【问题描述】:

我有一个小部件说widget/userInfo

我使用compose,在我的视图中多次加载这个小部件,如下所示:

index.js:

activate() 
  this.widget = 
        model: 'widgets/userinfo/viewmodel',
        view: 'widgets/userinfo/view.html',
        activationData:  userId: 1 
    ;

HTML:

<div>
    UserInfo: <div id="1" data-bind="compose: $root.userInfo"></div>
    UserInfo-2: <div id="2" data-bind="compose: $root.userInfo"></div>
</div>

当我像上面一样多次组合同一个小部件时,它只会加载最后一个 id="2" 的 div。但我想为两个 div 加载它

我用谷歌搜索了这个问题,但找不到解决方案

【问题讨论】:

【参考方案1】:

假设您正在谈论Durandal Widgets,并且小部件在应用程序启动时注册到widget.registerKind('userinfo'),我相信您应该使用这样的东西。

<div>
    UserInfo: <div id="1" data-bind="userinfo: data: $root.userInfo"></div>
    UserInfo-2: <div id="2" data-bind="userinfo: data: $root.userInfo"></div>
</div>

【讨论】:

我没有在应用程序启动时注册小部件。有没有在应用程序启动时注册的方法? 我相信它只需要在加载并绑定小部件的页面之前进行注册。

以上是关于如何在一个页面中多次组合相同的小部件的主要内容,如果未能解决你的问题,请参考以下文章

gtkmm 是不是可以多次将相同的小部件添加到 vbox

如何通过单击放置在同一页面上的小部件来显示不同的小部件

Flutter:一次多次使用相同的动画小部件

如何确保脚本运行一次且只运行一次

如何在不创建新的小部件树分支的情况下重用相同的布局屏幕

如何在android中正确设置一个大的小部件图标