0

我有带有服务UserModel和控制器的 Angular.js Web 应用程序 - Users

UserModel

/*
 * User model service
 */
angular.module('my_mode_ext').factory('UserModel', [function(){
    // user model
    var model = [];

    //
    // Return users model
    //
    model.get = function(){
        // some object
        model = {.........};
        // return model
        return model;
    }

    return model;
}]);

我尝试在控制器中使用它:

var UsersController = ['$scope', '$rootScope', '$http', '$route',
  function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
    console.log('UserModel ' + UserModel);
.....
}];

但进入undefinedUserModel错误:

Error: Unknown provider: UserModelProvider <- UserModel

如何解决?

UPD。我发现了问题。实际上,此服务和控制器位于其他模块而不是另一个应用程序中,但我不能这样做:

angular.module(my_main_module, ['my_mode_ext'])

因为我在 Web 应用程序的工作时间加载了这个脚本。如何在角度应用程序中动态加载模块?

谢谢你。

4

3 回答 3

1

语法不正确请更改为以下

var UsersController = ['$scope', '$rootScope', '$http', '$route','UserModel','ngTableParams'
  function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
    console.log('UserModel ' + UserModel);
.....
}];
于 2013-07-29T12:36:00.620 回答
1

在函数前添加字符串名称

var UsersController = ['$scope', '$rootScope', '$http', '$route', 'UserModel', 'ngTableParams'

function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
    console.log('UserModel ' + UserModel);
.....
}];
于 2013-07-29T12:36:18.153 回答
1

控制器必须在定义 UserModel 服务的同一模块上定义,或者控制器模块应该依赖于该my_mode_ext模块。

看到你的代码你的控制器定义变成了

angular.module('my_mode_ext').controller("UserController",['$scope', '$rootScope', '$http', '$route','UserModel','ngTableParams', function($scope, $rootScope, $http, $route, UserModel, ngTableParams){
    console.log('UserModel ' + UserModel);
}]);
于 2013-07-29T12:59:18.313 回答