Knockout.js 如何不在Durandal小部件绑定上重复显式设置
我正在用Durandal模拟一个网站,以保持我的淘汰赛js整洁,但无可否认,在Durandal方面,我是一个初学者 我经常需要迭代viewModel和bind小部件中的项目数组,但我发现我必须显式地重复“设置”绑定 例如:Knockout.js 如何不在Durandal小部件绑定上重复显式设置,knockout.js,durandal,Knockout.js,Durandal,我正在用Durandal模拟一个网站,以保持我的淘汰赛js整洁,但无可否认,在Durandal方面,我是一个初学者 我经常需要迭代viewModel和bind小部件中的项目数组,但我发现我必须显式地重复“设置”绑定 例如: <section data-bind="foreach: secondaryKpis" class="row"> <div data-bind="widget: { kind: 'kpiSecondary', name
<section data-bind="foreach: secondaryKpis" class="row">
<div data-bind="widget: {
kind: 'kpiSecondary',
name: $data.name,
columns: $data.columns,
delta: $data.delta,
description: $data.description,
vsDelta: $data.vsDelta,
vsDescription: $data.vsDescription
}">
</div>
</section>
但这需要我将数据变量展开为
this.settings
,在自定义小部件中,这是正确的方法还是有一种干净的标准方法来实现这一点,我还没有遇到过?要使您的代码更易于支持,请将getOptionsFor
方法添加到您的viewmodel中:
getOptionsFor: function (item) {
return {
name: item.name,
descr: item.descr
//etc
}
}
在本例中,您的html将如下所示:
<div data-bind="foreach: { data: targetArray, as: 'item' }">
<div data-bind="widget: $parent.getOptionsFor(item)"></div>
</div>
<div data-bind="foreach: { data: targetArray, as: 'item' }">
<div data-bind="widget: $parent.getOptionsFor(item)"></div>
</div>