Javascript 为什么在指令中没有首先调用日志

Javascript 为什么在指令中没有首先调用日志,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有这样的指令 angular.module('myDirective',[]) .directive('inputBox',function(){ return{ restrict:"E", controller:['$scope','$element',function($scope,$element){ $scope.printMessage = function(e){ // $scope.

我有这样的指令

angular.module('myDirective',[])

.directive('inputBox',function(){
    return{
        restrict:"E",
        controller:['$scope','$element',function($scope,$element){
            $scope.printMessage = function(e){
                // $scope.inputval = 'Enter input here';
                // callback(e);
                console.log('this should be called 1st');
                $scope.onButtonClicked({widgetEvent:e});
            };
        }],
        scope:{
            buttonName:"@",
            printedMessage:"@",
            onButtonClicked:"&"
        },
        template:'<input type="text" ng-model="inputval"><button ng-click="printMessage($event)">{{buttonName}}</button>'
    };
})

为什么先调用我的警报,然后再调用我的控制台。登录printMessage,如何避免此情况。

您在哪里调用showAlertMessage函数?@TyraICANGEL在另一个模块的控制器中它取决于浏览器刷新控制台的方式。您的指令代码看起来很好。我在那里找不到任何东西。您有任何plnkr/FIDLE用于此操作吗?
angular.module('myApp',['myDirective'])
.controller('myController',['$scope',function($scope){
    $scope.showAlertMessage = function(e){
        alert('this is a alert');
    };
}]);