2015-08-21 90 views
0

雖然定義指令時通過屬性和作用域使用變量,但有什麼區別?例如 -AngularJs屬性vs指令中的作用域

angular.module('tModule') 
    .directive('tModule', function() { 

    return { 
     restrict: 'E', 
     scope: true, 
     templateUrl: function(element, attributes) { 
     return attributes.variable1; 
     } 
    } 
}); 

與如果我使用範圍。如下 -

angular.module('tModule') 
    .directive('tModule', function() { 

    return { 
     restrict: 'E', 
     scope: { 
     variable1: "=variable1", 
     variable2: "=variable2" 
     }, 
     templateUrl: function() { 
     return variable1; 
     } 
    } 
}); 

有什麼區別和優勢?

+1

當需要雙向數據綁定時使用'='。當你想要控制器和指令之間的雙向數據綁定時使用它。 – dhavalcengg

回答

4

有根據您的例子有一些區別:

  1. 在你的頂部例如,指定scope: true手段來創建父範圍的新實例。在底部示例中,使用對象語法意味着創建一個獨立的作用域。因此,當您使用範圍語法將參數傳遞給指令時,您本質上會爲該指令創建一個隔離範圍。

  2. 如果您想要利用雙向數據綁定(=)或方法調用(&),那麼您希望使用第二種方法來通過作用域而不是屬性。

相關問題