我仍然希望{{1+2}}
被评估为正常。但除了普通插补器之外,我想创建一个自定义的插补器,我可以编程来做我想做的任何事情。
e.g。 <p>[[welcome_message]]</p>
应该是<p>{{'welcome_message' | translate}}</p>
或<p translate="welcome_message"></p>
的快捷方式。这样,i18n应用程序编写起来会更方便。
有可能吗?我目前正在浏览angular.js源代码,但插值系统看起来很复杂(?)。有什么建议吗?
答案 0 :(得分:2)
我创建了一个指令,regex-find-替换它的innerHTML。基本上,我可以将任何文本重写为任何其他文本。我是这样做的:
How do I make angular.js reevaluate / recompile inner html?
现在我所要做的就是将我的指令属性“autotranslate
”放在我希望插补器工作的其中一个父元素中,然后重写它,但我想要它! :d
<div class="panel panel-default" autotranslate>
<div class="panel-heading">[[WELCOME]]</div>
<div class="panel-body">
[[HELLO_WORLD]
</div>
</div>
变为
<div class="panel panel-default" autotranslate>
<div class="panel-heading"><span translate="WELCOME"></span></div>
<div class="panel-body">
<span translate="HELLO_WORLD"></span>
</div>
</div>
完全符合我的要求。
答案 1 :(得分:1)
我不认为这是可能的,但是如果你真的想要保存一些角色,你可以在rootScope
上创建一个名为t
的函数,然后在你的观点中调用它:
<p>{{ t(welcome_message) }}</p>