Akshaya
Akshaya

Reputation: 115

Angularjs-service return value

I have service

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

and have to retrieve the value of answers in controller and display it in html.

should I use return this or return answers?

Upvotes: 1

Views: 443

Answers (4)

zeeshan Qurban
zeeshan Qurban

Reputation: 387

You should change your code to this.

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

Upvotes: 0

Fergus
Fergus

Reputation: 2982

this.answers = answers;

I would return this

Upvotes: 0

Muthukannan Kanniappan
Muthukannan Kanniappan

Reputation: 2079

Add another getter function, like,

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

Upvotes: 2

PSK
PSK

Reputation: 17943

If you want to access array outside, it should be set to the service.

Add line

this.answers = answers;

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

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

Upvotes: 0

Related Questions