Javascript 何时在angularjs中使用工人和工厂功能

Javascript 何时在angularjs中使用工人和工厂功能,javascript,angularjs,Javascript,Angularjs,我正在从亚当·弗里曼的亲安格拉斯学习安格拉斯 这是他用angularjs定义指令的一个例子 myApp.directive("highlight", function () { return function (scope, element, attrs) { if (scope.day == attrs["highlight"]) { element.css("color", "red"); } }; }); 编写器调用的第一个函数是factory函数,它

我正在从亚当·弗里曼的亲安格拉斯学习安格拉斯

这是他用angularjs定义指令的一个例子

myApp.directive("highlight", function () {
  return function (scope, element, attrs) {
    if (scope.day == attrs["highlight"]) {
      element.css("color", "red");
    }
  };
});
编写器调用的第一个函数是factory函数,它返回一个worker函数。我不明白他为什么返回另一个函数

当我在下面编写代码时,代码返回一个错误。 我不知道我做错了什么

myApp.directive("highlight", function (scope, element, attrs) {
  if (scope.day == attrs["highlight"]) {
    return element.css("color","red")
  }  
});
如果您看一下about指令,就会发现有两种方法可以定义指令。一个是使用指令定义对象,另一个是只返回一个postLink函数


你书中的例子显示了后一种形式。函数不工作的原因是Angular调用函数并希望它返回指令定义对象或postLink函数。相反,您定义的函数不返回任何内容或
element.css(“color”、“red”)
的结果,具体取决于您的if语句

返回的错误是什么?是的,如果有疑问,请转到文档。他们通常会举一两个例子。