2016-06-14 5 views
1

У меня есть службыAngularjs-служба возвращаемое значение

angular.module('myapp') 
.service('AnswerService', function() { 
    var answers = []; 
    this.addAnswers = function(questionId) { 
     answers.push(questionId); 
     console.log(answers); 
    } 
    return this; 
}) 

и должны получить значение ответов в контроллере и отображать его в HTML.

Следует ли использовать return this или return answers?

+2

В чем проблема? – PSK

+0

должно быть «вернуть это» или «вернуть ответы»? –

+0

Я вызвал addAnswers func в моем контроллере для циклизации и сохранения значения в массиве. моя проблема в том, что мне нужно получить массив ответов в контроллере. – Akshaya

ответ

0

Если вы хотите получить доступ к массиву снаружи, он должен быть установлен в службу.

Добавить линия

this.answers = ответы;

angular.module('myapp') 
.service('AnswerService', function() { 

    var answers = []; 
    this.addAnswers = function(questionId) { 
     answers.push(questionId); 
     console.log(answers); 
    } 
    this.answers = answers; 
    return this; 
}) 
2

Добавить еще одну функцию геттер, как,

angular.module('myapp') 
.service('AnswerService', function() { 
    var answers = []; 
    this.addAnswers = function(questionId) { 
     answers.push(questionId); 
     console.log(answers); 
    } 
    this.getAnswers = function() { 
     return answers; 
    } 
}); 
+1

Точно, избили меня до него – Fergus

+0

как это назвать в контроллере? – Akshaya

+1

Точно так же вы бы назвали функцию addAnswers. Inject AnswerService для вашего контроллера, а затем answerService.getAnswers(); –

0
this.answers = answers; 

Я хотел бы вернуться this

0

Вы должны изменить свой код к этому.

angular.module('myapp').service('AnswerService', function() { 
var answers = []; 
this.addAnswers = function(questionId) { 
    answers.push(questionId); 
    console.log(answers); 
    return answers; 
} })