AngularJS : Passage d'une fonction à un isolé champ d'application d'une directive, d'être appelé à l'intérieur de son contrôleur?

Je suis en train d'appeler une fonction transmise à partir d'un contrôleur de l'étendue dans une directive par le "&" opération de la directive du contrôleur. Cette méthode, cependant, est revendiquée par Angulaire pour être indéfini. Après la lecture de mon code, récurer l'internet, et en répétant ce processus, j'ai décidé de vous tourner vers de l'aide ici.

Voici la partie pertinente de mon contrôleur. Il contient la méthode que je passe à mon directive.

angular.module('myApp.controllers', []).controller('PostCtrl', ['$scope', 'postalService', function($scope, postalService) {
    $scope.posts = [];

    $scope.getPosts = function() {
        postalService.getPosts(function(err, posts) {
            if(err);
            else $scope.posts = posts;
        });
    };
}]);

Voici mon directive. Je ne suis pas en mesure d'invoquer onPost.

angular.module('myApp.directives', []).directive('compose', ['postalService', function(postalService) {
    return {
        restrict: 'E',
        transclude: false,
        replace: true,
        scope: {
            onPost: "&" //why will it not
        },
        templateUrl: "partials/components/compose-partial.html",
        controller: function($scope, postalService) {
            $scope.title = "";
            $scope.content = "";
            $scope.newPost = function() {
                postalService.newPost($scope.title, $scope.content, function(err) {
                    if(err) console.log(err + ":(");
                    else {
                        console.log("Success getting posts.");
                        //why can I not invoke onPost()??
                        $scope.onPost();
                    }
                });
            };
        },
    };
}]);

Et voici la partie de mon code html

<div ng-controller="PostCtrl">
    <section class="side-bar panel hide-for-small">
        <compose onPost="getPosts()"></compose>
    </section>

    <!--more, non-relevant html here-->

</div>

Je sais que le problème n'est pas avec mon postalService Service. Au lieu de cela, la directive sur les rapports qu'aucune fonction n'est transmis. Pourquoi??

InformationsquelleAutor thebradbain | 2013-10-06