So ändern Sie den Gültigkeitsbereich in einer Direktive in AngularJs

Ich muss ein Stammbereichsattribut innerhalb eines Rückrufs innerhalb einer Direktive ändern. Die Direktive befindet sich jedoch in einem inneren Bereich, der durch eine switch-Direktive erzeugt wird.

HTML

<div ng-app="app" ng-controller='AppController'>
    <p>Selected: {{ selected }}</p>
    <div ng-switch on="selected">
        <div ng-switch-default>
            <p>Item: {{ selected }}</p>
            <custom-tag selected-item="selected" />
        </div>
        <div ng-switch-when="New value">
            <p>Worked</p>
        </div>
    </div>
</div>

JavaScript

angular.module('app', [])    
    .directive("customTag", [function () {
    return {
        restrict: "E",
        replace: true,
        template: "<input type='button' value='Click me' />",

        link: function (scope, element, attrs) {
            element.bind('click', function () {
                scope[attrs.selectedItem] = "New value";
                scope.$apply();
            });
        }
    };
}]);

function AppController($scope) {
    $scope.selected = 'Old value';
}

Geige:http://jsfiddle.net/nJ7FQ/

Mein Ziel ist es, "Neuer Wert" im Bereich Ausgewählt anzeigen zu können. Wie kann ich erreichen, was ich versuche zu tun? Was mache ich falsch?

Außerdem versuche ich gerade, ein Bauteil herzustellen. Gibt es eine Möglichkeit, dasselbe zu tun, jedoch mit einem isolierten Bereich?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage