javascript - 如何从 Controller 调用指令范围内的函数

标签 javascript angularjs

网上查了很多资料都没有找到解决办法,请大家帮忙!

directive('menu',function(){
    return{
        link : function(scope,element,attrs){
            scope.foo = function(){
            alert('test!');
            }
        },
        controller : function($scope){
            $scope.foo();
        }
    }
});

最佳答案

使用 $evalAsync() 延迟对 foo() 的调用:

controller : function($scope){
    $scope.$evalAsync(function() {
        $scope.foo();
        console.log($scope);
    });
}

fiddle

您还可以使用 $timeout() 代替 $evalAsync()。两者都允许首先执行链接函数。

关于javascript - 如何从 Controller 调用指令范围内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17790333/

相关文章:

javascript - 在这种情况下如何维护类似 Promise 的 API?

javascript - 未知提供商 : pagingParamsProvider <- pagingParams In ResultAnalysisDetailController

javascript - angularJS 中的客户端重复数据验证

Javascript 'in' 函数在控制台中抛出错误

javascript - 如何检查angularjs中的所有字段是否为空

php - 使用 PHP 或 Javascript 去掉最后一个逗号

javascript - 在动态元素上调用 ko.applyBindings 不起作用

javascript - 如果点击jquery

angularjs - 无法过滤剑道网格中的文本框

javascript - 将时间值从 jquery 发送到 python 服务器