使用componentProvider时ui-router无法解析

时间:2018-11-22 02:28:41

标签: angularjs angular-ui-router

我正在研究一个白色标签产品本身,该产品会加载数据文件以编程方式填充自身,特别是在加载的数据中是组件名称和该组件的关联JSON数据,而这些已命名的组件已经在数据加载到的角度模块。

在组件控制器angularjs中尝试解析ffs时使用AngularJS 1.7.4和ui-router 1.0.20遇到错误Unknown provider: ffsProvider <- ffs。这是预期的行为吗,是否有解决方法可以让我使用resolve注入这些依赖项?

我需要使用componentProvider,因为状态是使用$stateRegistry.register({...})加载和注册的,每个状态都有在JSON文件中定义的组件。

这是该设计的简洁视图,请注意,它可以通过将componentProvider替换为component而起作用。

// Here's a skeleton app.  Fork this plunk, or create your own from scratch.
var app = angular.module('demonstrateissue', ['ui.router']);

// Empty config block.  Define your example states here.
app.config(function($stateProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise('/home')

  $stateProvider.state({ 
    name: 'home', 
    url: '/home', 
    componentProvider: function() {
      return 'myComponent';
    },
    resolve: {
      ffs: function() {
        return { 'msg': 'hello world' };
      }
    }
  });
})
.component('myComponent', {
  template: '<h1>foo state loaded {{ ffs.msg }}</h1>',
  controller: function($scope, ffs) {
    console.log(ffs)
    $scope.ffs = ffs;
  }
})

有关示例,请参见plunkr

http://plnkr.co/edit/JblM9T2mTHcXvsdAovBF?p=preview

0 个答案:

没有答案