在角度1.3中有一个时间绑定::
为了减少观察者,我想在我的指令中使用它.
为了减少观察者,我想在我的指令中使用它.
问题是在某些情况下我需要正常绑定(没有::).
我是否必须使用两个不同的指令,或者有一个使用’dynamic’:: attribute的解决方案?
或者也许有可能强迫角度再一次计算一次性绑定(在该指令中)?
我的自定义指令是这样的:
"<span ng-switch=\"::kolumna.typ_pokaz\">" + "<span ng-switch-when=\"cena_waluta\" ng-bind=\"model.ngModel|waluta:ngModel.waluta\"></span>" + "<span ng-switch-when=\"cena\" waluta-domyslna=\"model.ngModel\"></span>" + "<span ng-switch-default ng-bind-html=\"model.ngModel\"></span>" + "</span>"
在大多数情况下,model.ngModel可能是onetime :: model.ngModel,但并非总是如此.
解决方法
您可以使用“可选”或“动态”一次性绑定.这有点乱,但完全有可能.这是一个例子:
在指令/组件内:
<div ng-init="oneTimeBindingPrefix = oneTimeBinding ? '::' : ''"> <div ng-bind="{{::oneTimeBindingPrefix}}{{theValue}}"></div> </div>
使用指令/组件:
<wt-wish-added-promised-info one-time-binding="false" ...></wt-wish-added-promised-info>