角UI状态 - 多观点没有看到我的决心数据 [英] Angular-ui State - Multiple views not seeing my resolve data

查看:228
本文介绍了角UI状态 - 多观点没有看到我的决心数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于某些原因,我resolvedData不是由控制器使用多个命名视图(角的UI用户界面路由器)时看到。有没有人遇到这个问题?

For some reason, my resolvedData is not seeing by controllers when using multiple named views (angular-ui ui-router). Has anyone faced this issue?

$stateProvider
    .state('page',{
           abstract: true,
           templateUrl: ...,
           controller: abstractController
    })
    .state('page.index',
           url: '/page',
           resolve : {
               resolvedData: function(CONSTANTS){ return CONSTANTS.data;}
           },
           views: {
               home: {templateUrl: ..., 
                      controller: function(resolvedData){
                        ....
                      }
               },
               list: {templateUrl: ..., 
                      controller: function(resolvedData){
                        ....
                      }
               },
               edit: {templateUrl: ..., 
                      controller: function(resolvedData){
                        ....
                      }
               }
           }
     )

它给我的错误是:错误:[$喷油器:unpr]未知提供商:resolvedDataProvider< - resolvedData。它是某种有趣的,因为它发生只在一个视图中,但不是在别人。

The error it gives me is: Error: [$injector:unpr] Unknown provider: resolvedDataProvider <- resolvedData. It is somehow interesting because it happens only in one of the views but not in the others.

推荐答案

我创建的小的工作示例,显示出你的东西应该工作

I created small working example, showing that your stuff should work

这将是常量:

.factory('CONSTANTS', function() {
    return { data: { name :  "some name", number : "some number"} };
})

和相同的(只是明确注明DI)状态DEF:

And the same (just explicitly annotated DI) state def:

  // States
  $stateProvider
    .state('page', {
      abstract: true,
      template: '<div>' 
       + '<div ui-view="home"></div>' 
       + '<div ui-view="list"></div></div>',
      controller: 'abstractController'
    })
    .state('page.index', {
      url: '/page',
      resolve: {
        resolvedData: ['CONSTANTS',
          function(CONSTANTS) {
            return CONSTANTS.data;
          }
        ]
      },
      views: {
        home: {
          templateUrl: 'tpl.html',
          controller: ['resolvedData','$scope',
            function(resolvedData, $scope) {
              console.log(resolvedData);
              $scope.resolvedData = resolvedData;
            }
          ],
        },
        list: {
          template: '<div>list view</div>'
        }
      }
    })

因此​​,决心上面所用的草案工作。这是正确的方式...的决心功能提供了一些服务......并返回其财产数据

检查所有 rel=\"nofollow\">

Check that all here

这篇关于角UI状态 - 多观点没有看到我的决心数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆