Angularjs:为什么控制器不能从服务访问对象属性?我真的很困惑

Angularjs :why controller can not access object properties from service?I really confused

本文关键字:属性 真的 对象 访问 为什么 控制器 不能 服务 Angularjs      更新时间:2023-09-26

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显示中,它有vote属性,其值是绝对正确的,但VoteFdy.data.vote为null,这真的很奇怪。

为什么VoteFty.data.vote为空?我真的不明白,请帮我弄清楚,谢谢!

您可以这样使用工厂:

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((;