我需要知道某个指令何时完成其工作。
该指令不是我的指令,它是我用来本地化某些文本的指令;它运作得很好。
实施例
<p i18n="locale.sampleText"></p>
我需要知道sampleText
注入p
元素的时间,因为这会改变p
的大小,我需要更新布局。
感谢。
答案 0 :(得分:0)
您可以使用指令发布链接功能。这个函数将在元素处理结束时调用 - 因此文本应该已经被翻译过了。另请参阅http://www.undefinednull.com/2014/07/07/practical-guide-to-prelink-postlink-and-controller-methods-of-angular-directives/
<p i18n="locale.sampleText" post-process></p>
app.directive('postProcess', function () {
return {
restrict: 'A',
link: {
post: function(scope,elem,attr){
$timeout(function() {
doPostProcess();
});
}
}
};
});
答案 1 :(得分:0)
这不是解决问题的正确方法,但您可以通过编写指令来完成工作
<p i18n="locale.sampleText" check-content-loaded></p>
该指令看起来像
myModule.directive('checkContentLoaded', function ($interval) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var interval = $interval(function () {
console.log('still not found');
if (element.text()) {
$interval.cancel(interval);
console.log('found'); //here you can change your layout
};
}, 1000); //changing time interval you can improve performance
}
};
});