Arasındaki fark nedir:
{{::office.name}}
ve
{{office.name}}
açısal JS'de?
Yanıtlar:
İle başlayan bir ifade,
::
tek seferlik bir ifade olarak kabul edilir. Tek seferlik ifadeler, kararlı olduklarında yeniden hesaplamayı durdurur; bu, ifade sonucu tanımlanmamış bir değer ise ilk özetten sonra gerçekleşir (aşağıdaki değer sabitleme algoritmasına bakın).
Çoğu durumda, değerlerin yalnızca görünümde gösterilmesi gerekir ve hiçbir zaman görünümden veya denetleyiciden güncellenmez. Bununla birlikte, iki yönlü bağlama kullanılıyorsa, $digest
her döngüde ifadede gerekli olmayan herhangi bir değişiklik olup olmadığını kontrol edecektir. Bu durumlarda ::
ifadeden önce kullanılmalıdır. Yukarıdaki açıklamada belirtildiği gibi, bu tür durumlar için iki yönlü bağlanma sözdiziminden daha etkilidir.
Blog: angularjs kerelik bağlayıcı sözdizimi gelen @Todd Slogan
Özetle
{{ ::foo }}
, DOM içinde olduğu gibi bir değer bildirdiğimizde , bu değer tanımlandığında, Angular onu işleyecek, izleyicilerden ayıracak ve böylece$digest
döngü içindeki bağlama hacmini azaltacaktır . Basit!