UI-маршрутизатор не может разрешить при использовании componentProvider - PullRequest
0 голосов
/ 22 ноября 2018

Я работаю над продуктом белой метки как таковым, который загружает файл данных для программного наполнения самого себя, в частности в загружаемых данных указывается имя компонента и связанные данные JSON для этого компонента, в то время как эти именованные компоненты уже определены вугловой модуль, в который загружаются данные.

При использовании AngularJS 1.7.4 и ui-router 1.0.20 при попытке разрешить ffs в контроллере компонента angularjs обнаруживает ошибку Unknown provider: ffsProvider <- ffs.Это ожидаемое поведение, есть ли обходной путь, который позволяет мне вводить эти зависимости с разрешением?

У меня есть необходимость использовать 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

...