因此,随着组件和自定义元素的引入,封装逻辑和标记似乎要容易得多,但是当您需要传入视图模型时,我有点不确定如何在 foreach 部分中使用组件。
所以我目前的情况是我有一个看起来像这样的视图模型:
function SomePartialViewModel()
{
this.Name = ko.observable();
this.Score = ko.observable();
this.SomeDate = ko.observable();
}
function SomeViewModel()
{
this.DataFromWebServiceCall = ko.observableArray();
this.GetDataFromServer = function(){
// get some data from service and populate DataFromWebSeriviceCall with instances of SomePartialViewModel
}
}
现在在上面我们有一个包含部分数据的 POJO,并且我们有一个用于视图的主视图模型,它将联系 Web 服务或其他东西,并用部分实例填充它的数组。那么这目前将像这样使用:
<div id="partial-data" data-bind="template: { name: 'partial-view', foreach: DataFromWebServiceCall }"></div>
<div class="partial-view">
<label data-bind="text: Name"></label>
<label data-bind="text: Score"></label>
<label data-bind="text: SomeDate"></label>
</div>
现在假设.partial-view
is 在具有正确模板名称等的脚本标记中并且是正确的模板,然后#partial-data
is 在主视图中并希望在页面上显示所有实例。现在一切正常,但我想转移到一个更多基于组件的模型,目前我们可以看到模板依赖于 SomePartialViewModel 数据,所以我们有我们的模板和该组件的视图模型,但是问题就在附近将视图模型放入组件中,因为当前您在设置时注册组件,然后使用参数填充它的块。但是在这种情况下,我想在绑定时将视图模型传递给组件......
所以我想知道如何才能做到这一点,因为我想我可以使用模板注册组件但没有视图模型,但是是否有data
样式绑定的概念,我可以在其中设置$data
属性并从模板移动到 foreach绑定视图?
希望可以看到我要解决的问题,并且任何信息都会很棒。