2017-08-11 4 views
0

Ich bin sehr neu zu knockoutjs Ich habe den Fehler "Das Argument übergeben, wenn ein beobachtbares Array Initialisierung muss ein Array oder Null oder undefined sein .Ich nicht eine Idee, wie irgend jemanden zu lösen it.Can mir bitte helfenDas Argument übergeben, wenn ein beobachtbares Array initialisiert werden muss ein Array oder Null oder undefined

viewModel = function() 
{ 
    var self = this; 
    self.rows = ko.observableArray([]); 
    self.items = ko.observableArray(childData.items); 
    self.otherCharges = ko.observableArray(childData.otherCharges); 
    self.add = function (type) { 

     var entry = new Entry({}); 
     entry.SNo(VMRows().length); 
     entry.Type(type); 
     self.rows.push(entry); 

    }; 

    self.remove = function (entry) { 
     self.rows.remove(entry); 
     i = 0; 
     ko.utils.arrayForEach(VMRows, function (e) { 
      e.SNo(i++); 
     }); 
    }; 

}; 
VM[container] = new viewModel(); 

var VMRows = VM[container].rows; 
+0

Beachten Sie, dass Ihr Code, wie zitiert, Beute [The Horror of Implicit Globals] (http: // Blog. niftysnippets.org/2008/03/horror-of-implicit-globals.html) * (das ist ein Beitrag auf meinem anämischen kleinen Blog) *. Deklarieren Sie Ihre Variablen (zB 'viewModel'). –

Antwort

3

Die Botschaft ist sehr klar. Sie vorbei einen Wert in ko.observableArray, die kein Array ist, null, childData.items oder childData.otherCharges ist kein Array, nicht null, und nicht undefined. Mindestens einer von ihnen ist ein andere Wert. (Offensichtlich kann ich Ihnen nicht sagen, was; Sie haben uns nicht gezeigt, was childData ist.)

+0

Hallo, TJCrowder ist mein Skript und in meinem Projekt habe ich Ihnen zwei Knockoutjs-Listen für ShiftA & B, aber keine Elemente wurden angezeigt, wenn ich auf Bearbeiten – Sowjanya

+1

@Sowjanya: Zitat serverseitigen Templating-Code in einem Kommentar ist nicht nützlich. Zeigen Sie, was der Browser sieht, nicht den Servercode, indem Sie den Link "Bearbeiten" in der Frage verwenden. Jetzt kann ich 'thelp, weil ich nicht weiß, was 'Model.xShiftA' und' Model.xShiftB' sind. (Und ich muss es nicht wissen. Ich muss nur wissen, was der * Browser * sieht.) –

+0

Hallo, TJCrowder, danke für deine wertvolle Antwort. Wie du es getan hast, habe ich einige der Elemente von Kinddaten als deklariert ko.observableArray, die keine Array-Elemente sind. Wie habe ich Array aus ko.observableArray entfernt, so dass mein Bildschirm funktioniert – Sowjanya

Verwandte Themen