0

私は、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というエラーがスローされます。

ありがとうございました

答えて

0

申し訳ありませんが、以前の回答は間違っていました。私はあなたが少なくともpeople属性をtemplateapp.states.jsに追加するのに必要なソリューションに近づくと思います。このように<lists people="people"></lists>

+0

私はui-router v1.0.0へのアップグレードを終了し、代わりに 'component'プロパティを使用しました。 – errorline1

関連する問題