angularjs - Angular-ui State - 多个 View 看不到我的解析数据

标签 angularjs angular-ui-router

出于某种原因,当使用多个命名 View (angular-ui ui-router)时, Controller 看不到我的已解决数据。有没有人遇到过这个问题?

$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){
                        ....
                      }
               }
           }
     )

它给我的错误是:错误:[$injector:unpr] 未知提供者:resolvedDataProvider<-resolvedData。这在某种程度上很有趣,因为它只发生在一个 View 中,而不发生在其他 View 中。

最佳答案

我创建了 small working example ,表明你的东西应该工作

这将是常量:

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

和相同的(只是明确注释的 DI)状态定义:
  // 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>'
        }
      }
    })

所以,上面使用的决议草案是有效的。这是正确的方法......解析函数提供了一些服务......并返回其属性data .

检查所有 here

关于angularjs - Angular-ui State - 多个 View 看不到我的解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28149061/

相关文章:

javascript - 将参数传递给 XMLHttpRequest eventListener 函数

html - 调整ui-view元素的高度[Angular.js Angular UI Router]

javascript - Angular ui router ui-sref-active on parent

angularjs - 使用三元有条件地创建文本或删除文本

javascript - React state/props 不会更新

angularjs - 为什么 ui-grid 分页看起来这么歪?

javascript - AngularJs 完成渲染

javascript - UI Router 模板未注入(inject),但状态发生变化 Changes

javascript - 在angularjs中将id从一个页面传递到另一个页面

javascript - FireFox editableCellTemplate 只允许编辑一次