В моем webapp я создаю три модели, которые вложены, как первая viewmodel, является родительским элементом второго, второй является родительским элементом третьего. теперь, если я хочу отобразить значение третьей модели представления, она дает мне ошибку, которую она не определяет. В моем коде LoanRateViewModel
является родителем, чей ребенок Term
и Tier
является дочерним по отношению к Term
.Как получить доступ к модели просмотра grandchild с родительской модели?
function Tier(data){
var self = this;
self.tierValue = ko.observable(data.tierValue || "");
self.rate = ko.observable(data.rate || "121212");
self.simplerate = ko.observable(data.simplerate || "121212");
self.compoundrate = ko.observable(data.compoundrate || "12212");
}
function Term(data) {
var self = this;
self.Tiers = ko.observableArray([]);
self.loanterm = ko.observable(data.loanterm || "12");
self.termIdentifier = ko.observable(data.termIdentifier || "12");
};
здесь jsfiddle ссылка DEMO
Как я могу назвать внук возможно через нокаута JS?
Вы не можете пропустить уровни точно так же - как вы знаете, какой внук показывать? Вы должны знать, что это родитель. Поэтому попробуйте использовать что-то вроде: 'LoanRateViewModel.Terms() [i] .Tiers()' где 'i' - индекс родителя' Tier's'. –
Вы можете использовать вычисление для построения массива всех уровней путем перечисления всех Условий. Даже если вы это сделали, у вас возникла проблема с 'Add Fields'. В каком сроке у вас есть уровень? –
Если к нему обращаются через ui-вызов, вы можете передать событие и использовать элемент ko.contextFor (element), и в этой модели у вас есть доступ к его родительскому объекту и так далее. – segFault