私は、ui-router angular1チュートリアルのオフラインでバンドルされた(webpackを使用して)バージョンを構築しようとしていますが、いくつかのデータを解決しようとしているコンポーネントに送信します。サービス関数は、実際のデータで解決済みの約束を返しますが、コンポーネントに注入されることはありません。私は、コントローラは、それが渡されて検討することにしようとき、私は解決されたプロパティの名前を渡した場合、私はAngularJS ui-routerチュートリアルundefined binding es2015
Error: [$injector:unpr] Unknown provider: peopleProvider <- people
エラーを取得するここではいくつかのソースです。あなたがより多く表示する必要がある場合は、私は簡体字が
export default function($locationProvider, $stateProvider, $urlRouterProvider) {
$stateProvider
// other states
.state('lists', {
url: '/lists',
template: '<lists></lists>',
resolve: {
people: ['peopleService', PeopleService => {
console.log(PeopleService.getAllPeople();
return PeopleService.getAllPeople();
}]
}
});
$urlRouterProvider.otherwise('/');
}
layout.component.js
import Lists from '../lists/lists.component';
export default angular.module('layout', [
Lists.name
])
.component('layout', {
templateUrl: './components/layout/layout.template.html'
});
をapp.states.jsレポに
app.js
import angular from 'angular';
import 'angular-animate';
import 'angular-aria';
import 'angular-ui-router';
import 'material-design-lite';
import 'material-design-lite/dist/material.css';
import './scss/main.scss';
import Layout from './components/layout/layout.component';
import PeopleService from './services/people.service';
import states from './config/app.states';
angular.module('app', [
'ui.router',
Layout.name
])
.config(states)
.service('peopleService', PeopleService);
あなたを追加することができます
list.component.js
export default angular.module('app.lists', [])
.component('lists', {
templateUrl: './components/lists/lists.template.html',
bindings: {
people: '<' // from 'resolve' property of config/app.states
},
controller: class ListCtrl {
constructor(people) {
console.log(arguments);
console.log(this);
}
}
});
PeopleService.getAllPeople()が正常に戻ります。 people
プロパティがコンポーネントに表示されますが、people
を引数に渡そうとする上記のコードを使用しない限り、常に$injector:unpr
というエラーがスローされます。
ありがとうございました
私はui-router v1.0.0へのアップグレードを終了し、代わりに 'component'プロパティを使用しました。 – errorline1