У меня пару вопроса следующего кодаknockoutjs как отобразить вложенный наблюдаемый массив
ли TokenList в PromoTemplate observableArray, что случилось с каждым элементом в массиве? они автоматически становятся обернутыми в наблюдаемые?
Вся привязка, похоже, работает, я могу полностью дойти до значения токена, но когда я изменяю данные во входе, он, похоже, не уведомляет другие элементы управления, связанные с такое же свойство, например AttributeToken.Value.
function AttributeToken(data) { this.Identifier = ko.observable(data.Identifier) this.DataType = ko.observable(data.DataType) this.Value = ko.observable(data.Value); } function PromoTemplate(data) { this.Identifier = ko.observable(data.Identifier); this.Name = ko.observable(data.Name); this.Content = ko.observable(data.Content); this.TokenList = ko.observableArray(data.Tokens); this.Sample; } function PromoTemplateViewModel() { // Data var self = this; self.promoTemplates = ko.observableArray([]); self.selectedPromoTemplate = ko.observable(); // Init $.getJSON(promoTemplatesUrl, function (allData) { var mappedPromoTemplates = $.map(allData, function (item) { return new PromoTemplate(item) }); self.promoTemplates(mappedPromoTemplates); }); }
данные JSON выглядеть следующим образом
[{"Content":"<product><data price = \"100\" discountPercentage=\"{Percentage}\" startDate=\"{StartDate}\" ><\/data><\/product>","Description":null,"Identifier":"1","Name":"Percentage Promo","Tokens":[{"DataType":"double","Identifier":"{Percentage}","Value":"20"},{"DataType":"date","Identifier":"{StartDate}","Value":"10\/21\/2012"}]},{"Content":"<product><data price = \"250\" discountAmount=\"{DiscountAmount}\" startDate=\"{StartDate}\" ><\/data><\/product>","Description":null,"Identifier":"2","Name":"Dollar off Promo","Tokens":[{"DataType":"integer","Identifier":"{DiscountAmount}","Value":"5"},{"DataType":"date","Identifier":"{StartDate}","Value":"10\/21\/2012"}]}]