Non riesco a ripristinare la matrice osservabile con il nuovo valore usando una tecnica di caricamento lenta. Posso cancellare ma non posso resettare, ma non mi permette di aggiungere un nuovo valore dinamico.Knockout - Come reimpostare la matrice osservabile dinamica con il nuovo valore
violino http://jsfiddle.net/kspxa8as/
js
var i = 1;
optionsProvider = function(self) {
var self = self || {};
self.options = {};
self.get = function(name, initialValue) {
if (!self.options[name]) {
console.log("Called - " + name);
self.options[name] = ko.observableArray([initialValue]);
var requestHeader = '';
setTimeout(function() {
var aa = [{name: "plant 1" + i, selected: true}, {name: "palnt 2" + i, selected: false}];
self.options[name](aa);
i++;
}, 2000);
}
return self.options[name];
};
return self;
};
ViewModel = function() {
var self = this;
var k = 1;
var ob = new optionsProvider(self);
self.PlantSelected = ob.get("name" + k, '');
self.fillNewSelect = function() {
self.PlantSelected.removeAll();
self.PlantSelected().push(ob.get("name" + k, ''));
k++;
};
};
ko.applyBindings(new ViewModel());
HTML
<select class="n_imported_country"
data-bind="options: PlantSelected,
optionsText :'name'
"
>
</select>
<div data-bind="click: function(){
$root.fillNewSelect();
}">click to fill new select value</div>
Sono un novizio a eliminazione diretta, grande benvenuto le vostre risposte.
uso 'self.PlantSelected.push (ob.get ("nome" + k, ''));' 'invece()'. '()' usato per leggere dove come se fosse necessario aggiungere alcuni dati ad esso è necessario utilizzare l'instace dichiarata i.e 'sel.PlantSelected = ko.observableArray()' evviva –
non funzionante, basta stampare c nel menu a discesa. non so y –
Perché il 'timeout'? – haim770