Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 未找到ui路由器解析引发的错误提供程序_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 未找到ui路由器解析引发的错误提供程序

Angularjs 未找到ui路由器解析引发的错误提供程序,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我这里有一个ui路由器状态 var AccountParentState = { url: "/Account", views: accountrootview, stickA: true, }, AccountAddState = { url: "/add", views: addaccountview,

我这里有一个ui路由器状态

 var AccountParentState = {
            url: "/Account",
            views: accountrootview,
            stickA: true,
        },
            AccountAddState = {
                url: "/add",
                views: addaccountview,
                controller: "account-controller",
                resolve: {
                    Name: function () {
                        return "Joydeep";
                    }
                }
            };

        $stateProvider
            .state('account', AccountParentState)
            .state("account.add", AccountAddState)
这是我的控制器:

angular.module('ngApp').controller('account-controller', ['$scope', '$state', "account", "plugin-factory", "Name", function ($scope
    , $state
    , account
    , plugins, Name) {

    console.log(Name);


}]);
当我试图解析
帐户控制器中的
名称
时。其错误如下:

Unknown provider: NameProvider <- Name <- account-controller

Unknown provider:NameProvider为了帮助您了解问题,I使用了与上述状态类似的定义:

  var AccountParentState = {
    url: "/Account",
    views: { '' : 
       { template: 'Account state <hr/><div ui-view=""></div>',} },
    stickA: true, 
  },
    AccountAddState = {
      url: "/add",
      //views: addaccountview,
      templateUrl: 'tpl.html',
      controller: "account-controller",
      resolve: {
        Name: function() {
          return "Joydeep";
        }
      }
    };

  $stateProvider
    .state('account', AccountParentState)
    .state("account.add", AccountAddState)
这是可行的,因为控制器是由
UI路由器
实例化的,作为状态转换的一部分

另一方面,如果我们将在index.html(state def之外)中使用这一行(请参见)来扩展该示例


问题将出现。为什么?因为现在控制器不是由
UI路由器管理的。它不是由其基础结构注入的,也没有配置值
'Name'
。这是一种“朴素的棱角”风格


检查工作解决方案,如果视图中的某个地方有
ng controller='account-controller'
,则此类错误通常会出现。my html不包含ng controller。它完全通过ui路由器,这就是我创建plunker的原因。您可以观察工作版本并与您的解决方案进行比较。我的工作正在进行中,因此您应该能够很容易地找出差异。根据我的经验,找出问题的最佳方法是能够与工作人员进行比较;)希望对你有帮助。。。享受UI RouterKohler。实际上这不是问题所在。但是是的,你的plunker帮助我在州参考中解决了上下文解析对象。很高兴看到这一点,Joy,真的。享受神奇的工具,
UI路由器
;)
  .factory('account', function(){return {}})
  .factory('plugin-factory', function(){return {}})
  .controller('account-controller', 
     ['$scope', '$state', "account", "plugin-factory", "Name"
     , function($scope, $state, account, plugins, Name) {    
       console.log(Name);
     }
  ])
<div ng-controller="account-controller"></div>
<div ui-view=""></div>