Javascript 指令完全编译/呈现后调用函数

Javascript 指令完全编译/呈现后调用函数,javascript,angularjs,Javascript,Angularjs,(如果有些术语我弄错了,请原谅;我是个新手。) 我有一个指令,看起来像这样: return { template: "<p>{{size}}</p><div ng-transclude></div>", link: function(scope, element) { scope.size = element.outerWidth(); } }; 返回{ 模板:“{{size}}”, 链接:功能(范

(如果有些术语我弄错了,请原谅;我是个新手。)

我有一个指令,看起来像这样:

return {
    template: "<p>{{size}}</p><div ng-transclude></div>",
    link: function(scope, element) {
        scope.size = element.outerWidth();
    }
};    
返回{
模板:“{{size}}

”, 链接:功能(范围、元素){ scope.size=element.outerWidth(); } };
我希望
scope.size
的此设置在
ng transclude
解决后生效。但是,当调用
链接
函数时,情况并非如此。在内容中的
ng transclude
subs之后是否有运行代码的方法?是否必须侦听DOM中的加载事件?

$timeout()将工作放在本机事件队列上,因此在浏览器呈现后将为其提供服务。所以试试这个:

return {
    transclude: true,
    template: "<p>{{size}}</p><div ng-transclude></div>",
    link: function(scope, element) {
        //scope.size = element.outerWidth();
        $timeout(function() {
            scope.size = element.outerWidth();
        },0)

    }
};    
返回{
是的,
模板:“{{size}}

”, 链接:功能(范围、元素){ //scope.size=element.outerWidth(); $timeout(函数(){ scope.size=element.outerWidth(); },0) } };