【问题标题】: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 加载它

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

【问题讨论】:

    标签: knockout.js durandal


    【解决方案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>
    

    【讨论】:

    • 我没有在应用程序启动时注册小部件。有没有在应用程序启动时注册的方法?
    • 我相信它只需要在加载并绑定小部件的页面之前进行注册。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多