1
Angularのコンポーネント(Angular Fullstack Generatorで生成されたコードから)に適応しようとしています。 Iは、以下の通り「クエリ」を解決するためにルートを設定しようとした:
angular.module('paizaApp')
.config(function($stateProvider) {
$stateProvider
.state('main', {
url: '/',
template: '<main query="$resolve.query"></main>',
resolve:{
query:function(){return null;}
},
.state('starred',{
url:'/users/:userId/starred',
template: '<main query="$resolve.query"></main>',
resolve:{
query:function($stateParams){
return {stars:$stateParams.userId};
}
}
})
.state('users',{
url:'/users/:userId',
template: '<main query="$resolve.query"></main>',
resolve:{
query:function($stateParams){
return {user:$stateParams.userId}
}
}
以下、コントローラ/コンポーネントのコードです。
class MainController {
constructor($http, $scope, socket, Auth, query) {
this.$http = $http;
this.socket = socket;
this.awesomeThings = [];
$scope.isLoggedIn = Auth.isLoggedIn;
$scope.getCurrentUser = Auth.getCurrentUser;
$onInit() {
this.$http.get('/api/things',{params:{query:query}})
.then(response => {
this.awesomeThings = response.data;
this.socket.syncUpdates('thing', this.awesomeThings);
});
}////////
////////////////////////////////////// etc..
angular.module('paizaApp')
.component('main', {
templateUrl: 'app/main/main.html',
bindings:{query:'='},
controller: MainController
});
不明なクエリプロバイダが表示されています。しかし、コンストラクタからクエリを削除した場合、エラーメッセージは "クエリが定義されていません"です。 あなたは私が間違っている場所と、コントローラに "クエリ"変数を注入するはずですか?あなたは
angular.module('paizaApp')
.component('main', {
templateUrl: 'app/main/main.html',
controller: MainController,
scope:{query:'='}
});
コントローラ機能内でthis.queryへのクエリへの参照をすべて変更しました。ありがとう! –
の話が早すぎます。エラーメッセージはなくなりますが、this.queryは未定義を返します。私はまだ解決されたクエリの値がコントローラー機能にどのように入るのかを知る必要があります –
@AAllen値が 'null'でなければなりません。 –