К сожалению, я не могу передавать данные между компонентами. Я взял демоверсию bcqr-reader на https://embed.plnkr.co/m9dtF9llcAw7eYE94b5k/preview и передал отсканированную информацию на мой второй компонент. Сначала вы можете увидеть мой компонент сканирования. «$ scope.url» - мой объект интереса.Как получить доступ к значению объекта другого углового компонента
angular.module('foo').component('scan', {
bindings:{url:"="},
templateUrl: 'templates/scan.html',
controller:function($scope){
$scope.start = function() {
$scope.cameraRequested = true;
}
$scope.processURLfromQR = function (url) {
$scope.url = url;
$scope.cameraRequested = false;
}
}
});
Мой второй компонент «шоу» является пунктом назначения «$ scope.url». Позже мне понадобится $ scope.url, чтобы использовать его как id для запроса couchdb. Я много читал, об обмене данными между компонентами, но я не стал работать. Я также попытался сохранить объект как $ 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
ур приветствуется! ... «получить доступ к значению объекта другого углового компонента». Лучший способ, которым я это вижу, - хранить объект в угловой службе. –
Позвольте мне подготовить код, необходимый для обмена данными через службы. –