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