Czy można ręcznie wstawić obliczone observable do tablicy wygenerowanej za pomocą wtyczki mapowania? Oto przykład, który nie używa wtyczki mapowania, ale chciałbym wiedzieć, czy mógłby z niego skorzystać.Wstawianie wyliczonego obliczenia możliwe do zaobserwowania w obserwowalnej tablicy, która jest generowana za pomocą wtyczki ko.mapping.
Powiedzmy mam danych JSON z serwera:
[{
"OrderID":1,
"FirstName":"Bill",
"LastName":"Smith",
},{
"OrderID":2,
"FirstName":"Jeff",
"LastName":"Evans",
}
{
"OrderID":3,
"FirstName":"Dan",
"LastName":"Johnson",
}]
Na moim zdaniem mam klasę zamówienie i model wyświetlania:
function Order(order) {
var self = this;
self.OrderID = ko.observable(order.OrderID);
self.FirstName = ko.observable(order.FirstName);
self.LastName = ko.observable(order.LastName);
/*This is what I want to insert after the mapping plugin
generates "orders on the ViewModel*/
self.FullName = ko.computed(function() {
return self.FirstName() + ' ' + self.LastName();
});
}
function ViewModel() {
var self = this;
self.orders = ko.observableArray([])
//Get orders
$.ajax({
url: '@Url.Action("orders")',
type: "post",
success: function (data) {
var mappedOrders = $.map(data, function (item) { return new Order(item) });
self.orders(mappedOrders);
}
})
}
jest to możliwe do korzystania z wtyczki mapowania wygenerować tablicę zamówień w modelu widoku, a także umieć wstawić obliczoną obserwowalną "FullName" w tablicy zamówień?
Dziękuję to jest pomocne. Ale widzę tylko, jak sprawić, aby obliczone obserwowalne z jednej właściwości danych (tj. Dzieci -> nameLength). Jak można byłoby obliczyć obliczone z dwóch lub więcej właściwości? –
Niestety, nie było mnie wczoraj wieczorem, więc nie widziałem do tej pory Twojego pytania. Cieszę się, że masz to posortowane na końcu. Technicznie rzecz biorąc, odpowiedziałbym, że odpowiedziałem na pytanie, które zadawałeś całkowicie, więc pomyślałem, że upominek był najmniej zasłużony! –