私は最初の角度成分をngRouteでまとめようとしていますが、今までは解決するデータを取得できません。 設定:角度コンポーネントバインディング定義されていません
.when('/myfirstcomponent', {
template: '<myfirstcomponent claimKeys="$resolve.claimKeys"></myfirstcomponent>',
resolve: {
claimKeys: ['$http', function($http) {
$http.get('server/claimkeys.json').then((response) => {
var claimKeys = response.data.DATASET.TABLE;
return claimKeys;
});
}]
}
})
コンポーネント:
.component('myfirstcomponent', {
bindings: {
'claimKeys': '@'
},
templateUrl: 'components/component.html',
controller: [function() {
this.$onInit = function() {
var vm = this;
console.log(vm.claimKeys);
};
}]
コンポーネントのHTMLは、単にすべてだいくつかのランダムなテキストを持つp要素を持っています。
デバッグ、私はデータを取得していますそのときに私が見ることができますが、私はコンポーネントコントローラ上でそれにアクセスすることはできません...
編集:私は私の問題を修正しました下の受け入れ答えに感謝します。非同期呼び出しの問題とは関係ありませんでしたが、私のルートとコンポーネントをどのように定義したのかとは関係ありませんでした。修正のためのコードを見てください。再度、感謝します。
私の最初の問題は私のテンプレートにあります 'claimKeys'はクレームキーでなければなりません。しかし、単純に文字列 '$ resolve.claimKeys'に解決されます...進歩はほとんどありませんが、それ以上は得られません。 – Mickers
[非同期呼び出しから応答を返すにはどうすればよいですか?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –
'return claimKeys'は非同期なので' $ resolve.claimKeys'に何も返しません。二重引用符を参照してください。 –