angular.module('voteApp').factory('VoteFty', function (VoteRsc, VoteStatisticRsc) {

    var data = {
        vote: {}
    };

    var view = function () {

        VoteStatisticRsc.get({id: 1}, function (resp) {
            data.vote = resp;
        })
    };

    var vote = function (params) {

        VoteRsc.update({id: 1, index: params}, function (resp) {
            alert('ok!');
        })
    };

    view();

    return {
        data: data,
        vote: vote,
        view: view
    }
});

angular.module('voteApp').controller('VoteCtrl', function ($scope, VoteFty) {

    console.log(VoteFty.data);  // Object{vote:..}
    console.log(VoteFty.data.vote); // Object{}
}

                                     




在控制台VoteFty.data显示中,它具有投票属性,其值绝对正确,但是VoteFty.data.vote为null,这确实很奇怪。

为什么VoteFty.data.vote为null?我真的听不懂,请帮我弄清楚,谢谢!

最佳答案

您可以像这样使用工厂:

angular.module('voteApp').factory( 'VoteFty', function () {

    var factory = {};
    var privateVar = 'something';

    factory.data = function(){
        //some code here like return private var ect
        return privateVar;
    };

    return factory;
});


然后您可以使用VoteFty.data();

关于javascript - AngularJS:为什么 Controller 无法从服务访问对象属性?我真的很困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31559001/

10-13 00:33