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有效。添加一个答案,以便我可以正确地标记:)