私は 1 つのチャート ディレクティブを持っています。バーをクリックすると、値がコントローラーに送信されます。
// on click of bar chart emitting distict name
function onSeriesClick(e) {
scope.$emit('districtIdClicked', e.category);
scope.$apply();
}
コントローラーで。
// Passing values to map directive clicked District ID
$scope.clickedDistrictId = null;
console.log($scope.clickedDistrictId);
var lis = $scope.$on('districtIdClicked', function (event, data) {
console.log(data);
$scope.clickedDistrictId = data;
});
$scope.$on('$destroy', function () {
lis();
});
ここで彼の値をリストしていますが、ここでも別のディレクティブに渡したいと思います。だから私は 1 つに割り当て、別の でscope
これを見ています。scope
directive
// functionality for If District is not in visible on map, it should zoom out to show the selected district.
scope.$watch('clickedDistrictId', function (selectedDistrictID) {
if (scope.districtBoundaryData !== undefined) {
updateMapSetDistrictPolygon(voltageMap, scope.districtBoundaryData, selectedDistrictID);
}
});
問題は、値を破棄できないことです (別のページに移動するまで)。クリックチャートバーで同じ値を持っている場合、値はコントローラーに発行されますが、別のディレクティブで監視することはできません。
スコープの値を明示的に破棄する方法はありますか?