2016-07-21 4 views
-1

-Ничего нового для ember js и javascript вообще, и я не могу понять, почему мои методы продолжают выплевывать ошибку, что и taskData, и personData не определены. Любая обратная связь приветствуется!Переменная массива в контроллере ember

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

Ввод 'taskData' и' personData' внутри хэша действий не принесет ничего полезного. Удалить их. Затем вам нужно обратиться к ним с помощью 'this.get ('taskData')'. и т. д. Также используйте 'pushObject' вместо' push'. –

ответ

0

ключи объекта taskData и personData не являются переменными, но ключи от объекта, который затем передается в качестве аргумента в функции extend. Вы должны использовать ключевое слово this.

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

Но (а) вы не добавили 'this' везде, где это необходимо, и (б) вы не удалили ненужные' taskData' и т. Д. Изнутри хэша действий. –

+0

@torazaburo. Хорошо, отредактирован. –

+0

Нет, вам нужно 'this.get ('taskData')' и т. Д. –

Смежные вопросы