Knockout.js 如何从父模板中的函数填充foreach模板?

Knockout.js 如何从父模板中的函数填充foreach模板?,knockout.js,Knockout.js,我试图实现的是让loadVinces()函数填充嵌套的foreach模板: 我有一个包含Provider.ProviderVinces集合的提供者数组-我不希望为每个提供者填充ProviderVinces。我希望用户能够单击提供商,然后“按需”填充所单击提供商的ProviderVinces集合 我有一个从web服务加载的“提供者”模板 <tbody data-bind="foreach: {data: providers}"> 在ProvidersViewModel中 functi

我试图实现的是让
loadVinces()
函数填充嵌套的foreach模板:

我有一个包含Provider.ProviderVinces集合的提供者数组-我不希望为每个提供者填充ProviderVinces。我希望用户能够单击提供商,然后“按需”填充所单击提供商的ProviderVinces集合

我有一个从web服务加载的“提供者”模板

<tbody data-bind="foreach: {data: providers}">
在ProvidersViewModel中

function providersViewModel() {
    var obj = {};

    obj.providers = ko.observableArray();

    function loadProvidersFromSvc() {
        var url = '/api/providersvc/GetAllProviders';   
        $.getJSON(url,
            function (data) {            
                obj.providers.removeAll();
                var results = ko.observableArray();
                ko.mapping.fromJS(data.Records, {}, results);
                for (var i = 0; i < results().length; i++) {
                    obj.providers.push(results()[i]);
                };
            }
        );
    };

    function loadVenues(record) {
      alert('clicked ' + record.Id());
      //todo: call $.getJSON, get Venues by Provider Id and somehow get this data into the nested template.
    }

    obj.LoadVenues = loadVenues;
}
函数提供程序viewmodel(){
var obj={};
obj.providers=ko.observearray();
函数loadProvidersFromSvc(){
var url='/api/providersvc/GetAllProviders';
$.getJSON(url,
函数(数据){
obj.providers.removeAll();
var结果=ko.observableArray();
fromJS(data.Records,{},results);
对于(var i=0;i
我真正想要
loadVinces()
做的是按提供商Id从Web服务中提取场馆数据(我可以这么做),并将检索到的ProviderVinces数据绑定到单击的嵌套模板


我完全不知道该怎么做,我想我可能走错了方向。有人能给我指出正确的方向吗?

将LoadVincements功能移动到ProviderViewModel,因为它属于那里,然后从那里加载observableArray。如果确实需要从父级执行todo,则单击处理程序将clicked viewmodel作为参数,以便可以使用引用加载数组

Example on the parent approach

谢谢你的小提琴手安德斯。Ofc-我不填充模板,而是填充空的Provider.Vinces集合-这是可观察的,因此模板会更新。我想我只是有了一个小小的范式转变。谢谢
Example on the parent approach