不幸的是,我无法在组件之间传递数据。 我采取了bcqr阅读器演示 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将其用作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
! ...“访问另一个角度分量的对象值”..他们最好的办法就是在角度服务中存储对象 –
让我为您准备好通过服务共享数据所需的代码 –