1
我有一個稱爲直方圖演示的組件,其中有一個單獨的控制器,其變量名爲$scope.selectedElements
,我想在主控制器appCtrl
中觀察此變量。如何在不使用$rootScope
的情況下訪問此變量。如何在其他控制器中觀察變量AngularJS
主要HTML
<html lang="en-US" ng-app="histogram-test" ng-controller="appCtrl">
<div class="histogram-container"> <histogram-demo options = "options" data="data"></histogram-demo></div>
</html>
App.JS
angular
.module('histogram-test')
.config(function ($httpProvider, usSpinnerConfigProvider) {
$httpProvider.defaults.withCredentials = true;
usSpinnerConfigProvider.setDefaults({
// see http://spin.js.org/
color: 'white',
radius: 30,
width: 8,
length: 16,
shadow: true,
});
})
.controller('appCtrl', function ($scope, appConfig, $rootScope, auth, $state) {
/** HERE is where I want to watch $scope.selectedElements in Component.js **/}
Component.JS
angular
.module('histogram-test').component('histogramDemo', {
bindings: {
data: "=",
options: "=",
},
templateUrl: templateUrl,
controller: controller,
controllerAs: 'vm',
});
function controller($state, $scope) { ...
$scope.selectedElements = []; ...}
你可以使用事件發射器,這是更好的選擇。 –
如何使用事件發射器將對象數組發送到app.js? –
將selectedElements列表移動到服務並在組件和控制器中注入服務。這是有效的,因爲服務是單身人士。 –