2016-06-14 57 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来循环和存储数组中的值。我的问题是我必须在控制器中检索'answers'数组。 – 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'函数一样。将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; 
} })