残念ながら、コンポーネント間でデータを渡すことはできません。 私はbcqr-readerのデモを https://embed.plnkr.co/m9dtF9llcAw7eYE94b5k/preview にして、スキャンした情報を私の2番目のコンポーネントに渡しました。 まず、スキャンコンポーネントを見ることができます。 "$ scope.url"は私の関心対象です。別の角度コンポーネントのオブジェクト値にアクセスする方法
私の第2のコンポーネント「show」は、「$ scope.url」の宛先です。 後で$ scope.urlをcouchdbクエリのIDとして使用する必要があります。 コンポーネント間のデータ交換についてたくさん読んだけど、動かなかった。また、$ rootScopeとしてオブジェクトを保存しようとしました。私は$ onChangesのようなイベントベースのソリューションを好んでいますが、すべてのヘルプは大歓迎です。
angular.module('foo').component('show', {
template: '<p> Transfered value: {{$ctrl.url}}</p>',
bindings:{url:"="},
require: { url:'^scan'
},
controller: function() {
this.$onInit = function() {
console.log(this.foo.url); //
}; }
});
私app.jsファイルには、次のようになります。あなたがサービスを使用して解決することができるコンポーネント間のものを共有するには
myApp.config(function($stateProvider,$urlRouterProvider) {
var scanState = {
name: 'scan',
url: '/scan',
component:'scan'
}
var showState = {
name:'show',
url: '/show',
component:'show'
}
$stateProvider.state(scanState);
$stateProvider.state(showState);
$urlRouterProvider.otherwise("scan");
});
お返事ありがとうございました。あなたのヒントは、私の国の定義を議論で拡張することです。あなたのケースでは "解決する"。 – rupi42
ur welcome! ... "別の角度成分のオブジェクト値にアクセスする" ..私がこれを行うのが最も良い方法は、角度サービスにオブジェクトを格納することです –
サービスを通じてデータを共有するために必要なコードを準備しましょう –