2017-03-08 77 views
0

同時構建一個非常大規模的角度應用我遇到了性能問題。我所有的組件和視圖在很大程度上取決於數據綁定,在那裏無處不在。所以我決定通過添加{{::scopevariableName}}來刪除所有2路數據綁定,現在因爲沒有2路數據綁定,我的問題是如果控制器中的模態值發生更改,視圖會更新嗎?單向和雙向數據綁定在angularJs

function myCtr(){ 
    var that=this; 
    this.scopevariableName='hannad' 
    this.someFunction=function(){ 
    someEvent(function(callbackData){ 
     if(callbackData){ 
      that.scopevariableName='new value for scope variable' 
     } 
    }); 
} 
} 


<p ng-bind="::$ctrl.somevariableName"></p> 
+1

嘗試手動重新編譯您的視圖。 – lin

+0

@lin什麼是默認行爲或單向綁定? –

+0

對於真正的單向綁定,是的。以下鏈接可能會對你有所幫助,但它不是一個真正的單向約束。這是隔離範圍的示例:https://jsfiddle.net/toddmotto/wauana12/?utm_source=website&utm_medium=embed&utm_campaign=wauana12 – lin

回答

0

從文檔:一次性表達式 將停止重新計算一次它們是穩定的,之後的 第一摘要如果表達式的結果是一種非未定義的值恰好。

我對一次性綁定的理解是在作用域變量的第一次初始化之後,如果對象值改變了視圖將不會改變。 ,因爲觀察者沒有生效。 前

$scope.myVar=null; 
<p>{{::myVar}}</p> 

如果有任何變化$scope.myVar那些在視圖 不會影響,因爲這將只需要它的第一初始化值。那是null。