AngularJS服务不是一个功能

时间:2014-08-08 11:37:05

标签: angularjs angularjs-scope angularjs-service

当前运行的代码返回TypeError: Services.updateUserData.set is not a function

控制器

Services.updateUserData.set($rootScope.user);

Services.js

this.updateUserData = function() {
        return {
            set: function(data) {
                console.log(data);
                $http({
                    method: 'POST',
                    url: 'api/data/',
                    data: {'data': data},
                    headers: {'Content-Type': 'application/x-www-form-urlencoded'},                 
                }).success(function(data, status, headers, config) {
                    console.log(data);
                }).error(function(data, status, headers, config) {
                    console.log(data);
                });
            }
        }
    }

下面的代码有效,但我更愿意在updateUserData中设置一个get和set函数,这样我就不会重复工作了。

当前代码控制器

Services.updateUserData($rootScope.user);

Services.js

this.updateUserData = function() {
    console.log(data);
    $http({
        method: 'POST',
        url: 'api/data/',
        data: {'data': data},
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},                 
    }).success(function(data, status, headers, config) {
        console.log(data);
    }).error(function(data, status, headers, config) {
        console.log(data);
    });
}

1 个答案:

答案 0 :(得分:1)

updateUserData是一个函数,因此没有名为set的属性。该选项是将其转换为对象

this.updateUserData={set:function(){}}

或调用它

Services.updateUserData().set($rootScope.user);

访问set

之前