我正在开发一个durandal应用程序,根据某些操作,我需要使用<!-- ko widget: {kind:'widget/cards'} --><!-- /ko -->
注入一个小部件
目前未显示窗口小部件,但只能在HTML内容中看到注释。 有帮助吗? 感谢
答案 0 :(得分:1)
是。在窗口小部件绑定的直接父节点上使用if
或visible
绑定。如果没有直接父节点,则仅为了保持if
或visible
绑定而创建一个。
从DatePicker Widget中获取此代码我使用 Durandal为 Durandal 编写(您可以看到视频here):
<div>
<div data-bind="visible: viewMode() === 'month'">
<div data-bind="compose: {model: 'widgets/_common/datetime/datepickerMonth', view: 'widgets/_common/datetime/datepickerMonth', activate: true, activationData: messageChannel }"></div>
</div>
<div data-bind="visible: viewMode() === 'months'">
<div data-bind="compose: {model: 'widgets/_common/datetime/datepickerMonths', view: 'widgets/_common/datetime/datepickerMonths', activate: true, activationData: messageChannel }"></div>
</div>
<div data-bind="visible: viewMode() === 'years'">
<div data-bind="compose: {model: 'widgets/_common/datetime/datepickerYears', view: 'widgets/_common/datetime/datepickerYears', activate: true, activationData: messageChannel }"></div>
</div>
</div>
请注意,我是根据条件动态注入要显示的日历视图。顺便说一下,这是创建多视图小部件的一个技巧(而不是必须编写自定义视图定位器,这可能会变得复杂)。
当您动态注入小部件时,原则是相同的(与组合相反,正如我在这里所做的那样)。
在这种情况下,我使用visible
绑定来提高速度。每次用户在视图之间切换时,我都不想重新创建合成。用户希望日期选择器的性能更高。