在角度1.3中,有一个时间绑定::
为了减少观察者,我想在我的指令中使用它。
问题是在某些情况下我需要正常绑定(没有::
)。
我是否必须使用两个不同的指令,或者有一个使用“动态”::
属性的解决方案?
或者也许有可能强迫角度再一次计算一次性绑定(在该指令中)?
我的自定义指令是这样的:
"<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
可以是::model.ngModel
,但并非总是如此。
答案 0 :(得分:2)
您可以使用&#34;可选&#34;或&#34;动态&#34;一次性约束。它有点乱,但完全有可能。这是一个例子:
指令/组件内部:
class maker:
def parameter(self):
temp = int (input ('At what temperature do you want to make \n'))
return temp
def make_item (self):
def oven (self):
oven_temp = 0
while (oven_temp is not temp):
oven_temp += 1
print ("waiting for right oven temp")
oven(self)
person = maker ()
person.parameter()
person.make_item()
使用指令/组件:
<div ng-init="oneTimeBindingPrefix = oneTimeBinding ? '::' : ''">
<div ng-bind="{{::oneTimeBindingPrefix}}{{theValue}}"></div>
</div>
答案 1 :(得分:1)
你可以有多个模板 - 一个有一次绑定,一个没有 - 然后作为属性提供给指令。
app.directive('myDirective', function() {
return {
restrict: 'E',
templateUrl: function($element, $attrs){
return $attrs.tmpl;
}
};
});
标记看起来像这样
<my-directive tmpl="/path/to/only-once-template.html></my-directive>
和
<my-directive tmpl="/path/to/binding-template.html></my-directive>