嗨,大家好我有一個奇怪的問題與KO Observable數組和我的用戶界面,如果我通過一個固定的模型,我可觀察的數組這個工程!並顯示正確的選擇選項,但如果使這一個動態只是不顯示任何東西,我已經做了第一個選擇動態工作的選項,它的工作完美!,但第二個選項根本不起作用。用戶界面沒有檢測到可觀察的數組
這裏是我的模型的代碼的選項
var TipoModel = function(data) {
var self = this;
self.id = ko.observable(data.id);
self.name = ko.observable(data.name);
};
var HabitacionModel = function(Huespedes) {
...
self.loadRoomsType = function() {
ajax("/api/foro/loadrooms", {}, function(data) {
self.tipoHabitacion = ko.observableArray([]);
$.each(data, function(index, habitacion) {
var hab = new TipoModel({
id: habitacion.id,
name: habitacion.nombreHabitacion
});
self.tipoHabitacion.push(hab);
});
}, "GET");
console.log(self.tipoHabitacion());
}
self.loadpartnersType = function() {
ajax("/api/foro/loadpartners", {}, function(data) {
var self = this;
self.tipoHuesped = ko.observableArray([]);
$.each(data, function(index, socio) {
var x = new TipoModel({
id: socio.id,
name: socio.nombre
});
self.tipoHuesped.push(x);
});
console.log(self.tipoHuesped());
}, "GET");
}
的房間裏工作負載,但parters功能不能正常使用的是相同的代碼只有少數的變化,但它是相同的。
<select style="width:30%; height:100%; margin-top:4px; background-color:transparent; border-color:#729A2B;" data-bind="options: tipoHuesped,
value: selectedHuesped,
optionsText: 'name',
optionsValue: 'id',
optionsCaption: 'Escoge...'" required></select>
如果我從一開始就這樣定義陣列觀測到它的工作原理
self.tipoHuesped = ko.observableArray([
new TipoModel({
id: "1",
name: "Aeroméxico"
}),
new TipoModel({
id: "2",
name: "Magnicharters"
})
]);
我想使這一動態引起更多的數據即將加入,希望u能幫助我的傢伙。 謝謝
「self.tipoHabitacion = ko.observableArray([]);」不應該在ajax回調中 - 你創建了一個observableArray的新實例,但是標記綁定到前一個。 – TSV
同樣的事情是與「self.tipoHuesped = ko.observableArray([]);」 – TSV