2016-07-21 3 views
-1

-Ich bin etwas neu zu Ember js und Javascript im Allgemeinen, und ich kann nicht herausfinden, warum meine Methoden spucken immer wieder den Fehler, dass sowohl taskData und sind undefiniert. Jede Rückmeldung wird geschätzt!Array-Variable in einem Glut-Controller

import Ember from 'ember'; 

export default Ember.Controller.extend({ 

    taskData: [], 
    personData: [], 



     actions: { 

      taskData: [], 
      personData: [], 

     saveTask() { 

      var task = this.get("task"); 
      taskData.push(task); 
     }, 

     savePerson() 
     { 
      var person = this.get("person"); 
      personData.push(person); 
     }, 

     print(){ 

      alert(taskData); 
      alert(personData); 
     } 

     } 

}); 
+1

Das Einfügen von 'taskData' und' personData' in den Aktions-Hash wird nichts nützliches machen. Entferne sie. Dann müssen Sie mit 'this.get ('taskData')' auf sie verweisen. usw. Verwenden Sie auch 'pushObject' anstelle von' push'. –

Antwort

0

Objektschlüssel taskData und personData sind keine Variablen, sondern Schlüssel eines Objektes, die dann als Argument an die extend Funktion übergeben wird. Sie müssen this Schlüsselwort verwenden.

import Ember from 'ember'; 

export default Ember.Controller.extend({ 

    taskData: [], 
    personData: [], 



     actions: { 

      taskData: [], 
      personData: [], 

     saveTask() { 

      var task = this.get("task"); 
      this.taskData.push(task); 
     }, 

     savePerson() 
     { 
      var person = this.get("person"); 
      this.personData.push(person); 
     }, 

     print(){ 

      alert(this.taskData); 
      alert(this.personData); 
     } 

     } 

}); 
+0

Aber (a) du hast 'this' nicht überall hinzugefügt, wo es benötigt wird, und (b) du hast die unnötigen' taskData' usw. nicht aus dem Aktions-Hash entfernt. –

+0

@torazaburo. Ok, bearbeitet. –

+0

Nein, Sie brauchen 'this.get ('taskData')' usw. –

Verwandte Themen