angularjs - 工厂在 angularjs 中未定义

标签 angularjs

我正在尝试基于 this article 在 AngularJS 中创建一个工厂.但是我收到一条错误消息,说我的 Controller 中未定义“dataFactory”。我的代码如下所示:

MyApp.factory('dataFactory', ['$http', function($http)
    {
        var urlBase='/someurl/roles/';
        var dataFactory={};

        dataFactory.getRoles=function()
        {
            return $http.get(urlBase+'getlist');
        };

        dataFactory.addRole=function(roleName, roleCss)
        {
            return $http.get(urlBase+'add&name='+roleName+'&css='+roleCss);
        };

        dataFactory.updateRole=function(role)
        {
          return $http.get(urlBase+edit&id='+role.id+'&name='+role.name+'&css='+role.css');
        };

        dataFactory.deleteRole=function(role)
        {
            return $http.get(urlBase+'remove&id='+role.id);
        };

        return dataFactory;
    }]);

MyApp.controller('RoleCtrl',['$scope','$http','dataFactory', function($scope,$http,$rootScope,dataFactory) {
     dataFactory.getRoles().then(function(res){
        $scope.roles = res.data.result;   
      });
 }]);

我究竟做错了什么?

最佳答案

您缺少“$rootScope”的字符串版本

所以代替

MyApp.controller('RoleCtrl',['$scope','$http','dataFactory', function($scope,$http,$rootScope,dataFactory) {

使用(注意添加 '$rootScope' ):
MyApp.controller('RoleCtrl',['$scope','$http','$rootScope','dataFactory', function($scope,$http,$rootScope,dataFactory) {
dataFactory正在进入 $rootscope ,因为您的参数未对齐。然后没有什么可以发送到dataFactory .因此你的错误。

关于angularjs - 工厂在 angularjs 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20012479/

相关文章:

javascript - ng 类验证在 AngularJS 中不起作用

javascript - AngularJS 中的作用域是如何工作的?

javascript - 如何使直方图面板中的条形可点击 - kibana ES

angularjs - 是否可以在Angular属性中使用多条线?

javascript - Angular Bootstrap UI、HTML5 日期选择器和 Angular 1.3.0

javascript - ng-repeat 内的 Angular 指令获取预编译值

javascript - 成功渲染自定义指令后加载一些函数

javascript - 无法使用 $http 读取未定义的属性 'success'

Angularjs 指令和范围(获取字符串而不是对象)

javascript - 带有动态单选按钮的必需属性(ng-repeat)