簡體   English   中英

角度指令鏈接函數中“ attrs”參數的用途是什么

[英]What's the use of the “attrs” parameter in an angular directive link function

考慮此指令:

.directive('myDirective', function(httpRequestTracker) {
    return {
        restrict: 'EA',
        scope: {
            myvar: "=",
        },
        link: function($scope, elem, attrs) {
            console.log($scope.myvar, attrs.myvar);
        }
    };
})

和此JS控制台輸出:

> undefined undefined //如果沒有屬性

>值值//如果屬性值=“值”

link功能的attr參數有什么用? $ scope有什么區別?

謝謝

attrs只是指令上的原始屬性列表
scope更加復雜,您可以使用三種不同的運算符來為其填充值:

  • =評估HTML中的表達式,並且可能包含對象
  • @解釋以字符串形式傳遞的值。 總是。
  • &使您可以訪問在父作用域上定義的函數

我知道我來晚了,但是為了后人,對我來說最關鍵的區別是在指令的定義對象(不是鏈接函數簽名)中使用scope: {...}在指令元素,而完全省略scope屬性並從attrs手動檢索值則不會。 在很多情況下,無論出於何種原因,您都不想創建新的作用域,但仍然需要某些屬性的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM