1

私は 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これを見ています。scopedirective

// 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);
    }
});

問題は、値を破棄できないことです (別のページに移動するまで)。クリックチャートバーで同じ値を持っている場合、値はコントローラーに発行されますが、別のディレクティブで監視することはできません。

スコープの値を明示的に破棄する方法はありますか?

4

0 に答える 0