Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用afterRender回调后角度渲染不工作_Javascript_Angularjs - Fatal编程技术网

Javascript 使用afterRender回调后角度渲染不工作

Javascript 使用afterRender回调后角度渲染不工作,javascript,angularjs,Javascript,Angularjs,下面是我正在使用的当前代码 App.directive('afterRender', ['$timeout', function ($timeout) { var def = { restrict: 'A', terminal: true, transclude: false, link: function (scope, element, attrs) { $timeout(scope.$eval(

下面是我正在使用的当前代码

App.directive('afterRender', ['$timeout', function ($timeout) {
    var def = {
        restrict: 'A',
        terminal: true,
        transclude: false,
        link: function (scope, element, attrs) {
            $timeout(scope.$eval(attrs.afterRender), 0);
        }
    };
    return def;
}]);
我把它叫做

after-render="disableFullPage"
现在我在当前代码中面临的问题是disableFullPage函数被调用得很好。但是angular没有呈现任何数据。所以如果我把

{{message}}

这是没有被渲染的。此外,如果移除后渲染,渲染效果也会很好。有人能帮我解决我做错了什么吗?如果可能的话,请编辑上面的代码,并提供一个简短的描述,以便我更好地理解,因为我对angular比较陌生。

我看到这里发生了两件事

首先,您要设置
终端:true
,这将阻止进一步解释指令和表达式

:

如果设置为true,则当前优先级将是最后一组优先级 将执行的指令(当前优先级的任何指令 仍将按相同优先级的执行顺序执行 未定义)请注意 指令的模板也将被排除在执行之外。

Second
$parse
将在当前作用域的上下文中对给定的任何表达式求值。就像你刚刚写了一行javascript

在上面的示例中,
在render=“disableFullPage”
之后,假设
disableFullPage
是一个函数,则不会发生任何事情。您需要像正常调用函数一样添加括号:


在render=“disableFullPage()”

设置
terminal:true的任何特定原因?这将禁用对指令/表达式的进一步求值。@Josh我是这里的新手。代码不是我的。它只是广泛的谷歌搜索。让我试试false flag,看看是否有效:)@Josh有效。添加一个答案,以便我可以正确地标记:)