AngularJS:在指令后插入模板中的字符串 priority

我正在模板上应用翻译,并使用“ translate”指令,如下所示:

<span translate>Hello {{name}}!</span>` 

在德语的单独de.json文件中,我有翻译键/值对,例如{"Hello {{name}}!": "Hallo {{name}}!"}。 在运行时,我的“翻译”指令假定将“跨度”内的内容替换为“ Hallo {{name}}!”然后AngularJS需要插入模板字符串。

不幸的是,今天它的工作方式相反:第一个AngJS插值,然后应用了我的指令。

问题:在AngJS中,是否有办法设置要在AngularJs插值之前应用的指令?

zzc123456 回答:AngularJS:在指令后插入模板中的字符串 priority

来自AngularJS Interpolation Guide

interpolateDirective的优先级为100,并在preLink`函数中设置手表

来自AngularJS $compile Docs

priority

当在单个DOM元素上定义了多个指令时,有时必须指定指令的应用顺序。优先级用于在调用指令的编译函数之前对它们进行排序。优先级定义为数字。首先编译具有更高数字优先级的指令。链接前功能也按优先级顺序运行,但是链接后功能按相反的顺序运行。具有相同优先级的指令的顺序是不确定的。默认优先级为0

Angular Translate库在$translateProvider API中具有directivePriority(priority) 函数,该函数使您可以将指令配置为以更高的优先级运行,例如101。那应该使您的translate指令在插值之前运行。

本文链接:https://www.f2er.com/2695907.html

大家都在问