我是Angular的新手,我一直在努力尝试调用一个在我的控制器中使用Restangular的工厂。这里是控制器:AngularJS:服务对象为空
'use strict';
angular.module('myApp')
.controller('UserCtrl', ['WebApi', function($scope, WebApi) {
$scope.user = WebApi.getProfile(1);
}
]);
每当我在我的控制器中调用WebApi工厂,WebApi对象是空的。当我调用方法时,它将返回undefined。当我在控制台登录的对象,我得到
Object {}
这里是我厂:
"use strict";
angular.module("myApp.services", ["restangular"])
.factory("WebApi", ["Restangular", function(Restangular) {
var getProfile;
Restangular.withConfig(function(RestangularConfigurer) {
RestangularConfigurer.setBaseUrl("http://127.0.0.1:3000/api/v1");
});
getProfile = function(id) {
Restangular.one("users", id).get().then(function(data) {
return data;
});
};
}
]);
应用模块:
'use strict';
angular.module('myApp', ['ngCookies', 'ngSanitize', 'ui.router', 'myApp.services']);
而且它包含在我的索引HTML:
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/services/webapi.js"></script>
<script src="scripts/controllers/user.js"></script>
我在做什么错?先谢谢你。
我明白服务和工厂之间的区别,但即使我只是为WebApi制作简单的函数或属性并从控制器调用它,WebApi对象也是空的。这是为什么? – user3181113
因为需要退货,所以让我给你看一个简单的例子来看看我的意思。 – Shomz
啊,我现在明白了。谢谢。 – user3181113