2015-12-27 31 views
0

我正在通過亞當弗里曼從Pro angularjs學習angularjs。何時使用angularjs中的工人和工廠函數

這是他在angularjs

myApp.directive("highlight", function() { 
    return function (scope, element, attrs) { 
    if (scope.day == attrs["highlight"]) { 
     element.css("color", "red"); 
    } 
    }; 
}); 

第一函數的調用作家定義的指令的示例是工廠函數,它返回一個工人功能。我無法理解他爲什麼會返回另一個功能。

當我編寫下面的代碼時,代碼返回一個錯誤。 我不知道我在做什麼錯。

myApp.directive("highlight", function (scope, element, attrs) { 
    if (scope.day == attrs["highlight"]) { 
    return element.css("color","red") 
    } 
}); 
+1

返回的錯誤是什麼? – koox00

回答

2

如果你看一看的Angular docs有關指令,你會看到,有兩種方法可以定義一個指令。一個是使用指令定義對象,另一個是僅返回postLink函數。

書中的例子顯示了後一種形式。你的函數不起作用的原因是Angular調用你的函數,並期望它返回一個指令定義對象或一個postlink函數。相反,您定義的函數根據if語句返回任何內容或element.css("color", "red")的結果。

+0

謝謝..我想定義過濾器時使用相同的屬性.. – hira

+0

是的,當有疑問時只是去角文件。他們通常傾向於有一個或兩個例子。 –