工厂在anglejs中是未定义的

前端之家收集整理的这篇文章主要介绍了工厂在anglejs中是未定义的前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在基于 this article在AngularJS中创建一个工厂.但是我的控制器中未定义“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',dataFactory) {

使用(注意添加’$rootScope’):

MyApp.controller('RoleCtrl','$rootScope',dataFactory) {

dataFactory进入$rootscope,因为你的参数不对齐.然后没有什么可以发送到dataFactory.因此你的错误.

猜你在找的Angularjs相关文章