Javascript AngularJS教程';选中标记';过滤器,更清晰的返回值

Javascript AngularJS教程';选中标记';过滤器,更清晰的返回值,javascript,angularjs,Javascript,Angularjs,这可能更像是一个JavaScript问题,但代码来自AngularJS教程。问题是,我如何才能让这个代码工作: 我的更改,我希望返回更明确一点,但这失败了: angular.module('phonecatFilters', []).filter('checkmark', function() { var isChecked = function(input) { return input ? '\u2713' : '\u2718'; }; return isChecked

这可能更像是一个JavaScript问题,但代码来自AngularJS教程。问题是,我如何才能让这个代码工作:

我的更改,我希望返回更明确一点,但这失败了:

angular.module('phonecatFilters', []).filter('checkmark', function() {
  var isChecked = function(input) {
    return input ? '\u2713' : '\u2718';
  };

  return isChecked(input);
});
本教程的原文:

angular.module('phonecatFilters', []).filter('checkmark', function() {
  return function(input) {
    return input ? '\u2713' : '\u2718';
  };
});
以下是教程页面:

注意,原始代码返回一个函数(在
返回函数(输入)
语句中)。这意味着您也应该返回一个函数:

return isChecked; // instead of `return isChecked(input);`
。。。而不是打电话的结果。顺便说一句,不需要为此使用变量-在表达式中命名函数就足够了(用于注释和调试目的):

angular.module('phonecatFilters', []).filter('checkmark', function() {
  return function getCheckmark(input) {
    return input ? '\u2713' : '\u2718';
  };
});

我更改了函数的名称,因为它返回的不是布尔值(您可能希望从名为
isXXX
的方法中得到的结果),而是一个字符,取决于它的输入是否为伪值。

请注意,原始代码返回一个函数(在
返回函数(输入)
语句中)。这意味着您也应该返回一个函数:

return isChecked; // instead of `return isChecked(input);`
。。。而不是打电话的结果。顺便说一句,不需要为此使用变量-在表达式中命名函数就足够了(用于注释和调试目的):

angular.module('phonecatFilters', []).filter('checkmark', function() {
  return function getCheckmark(input) {
    return input ? '\u2713' : '\u2718';
  };
});

我更改了函数的名称,因为它返回的不是布尔值(您可能希望从名为
isXXX
的方法中得到的结果),而是一个字符,取决于它的输入是否为伪值。

请注意,原始代码返回一个函数(在
返回函数(输入)
语句中)。这意味着您也应该返回一个函数:

return isChecked; // instead of `return isChecked(input);`
。。。而不是打电话的结果。顺便说一句,不需要为此使用变量-在表达式中命名函数就足够了(用于注释和调试目的):

angular.module('phonecatFilters', []).filter('checkmark', function() {
  return function getCheckmark(input) {
    return input ? '\u2713' : '\u2718';
  };
});

我更改了函数的名称,因为它返回的不是布尔值(您可能希望从名为
isXXX
的方法中得到的结果),而是一个字符,取决于它的输入是否为伪值。

请注意,原始代码返回一个函数(在
返回函数(输入)
语句中)。这意味着您也应该返回一个函数:

return isChecked; // instead of `return isChecked(input);`
。。。而不是打电话的结果。顺便说一句,不需要为此使用变量-在表达式中命名函数就足够了(用于注释和调试目的):

angular.module('phonecatFilters', []).filter('checkmark', function() {
  return function getCheckmark(input) {
    return input ? '\u2713' : '\u2718';
  };
});
我更改了函数的名称,因为它返回的不是布尔值(您可能希望从名为
isXXX
的方法中得到的结果),而是一个字符,取决于它的输入是否为伪值。

谢谢。我还尝试了“return isChecked()”,但现在我看到了问题,我返回的是函数的返回值,而不是实际的函数本身。谢谢。我还尝试了“return isChecked()”,但现在我看到了问题,我返回的是函数的返回值,而不是实际的函数本身。谢谢。我还尝试了“return isChecked()”,但现在我看到了问题,我返回的是函数的返回值,而不是实际的函数本身。谢谢。我还尝试了“return isChecked()”,但现在我看到了问题,我返回的是函数的返回值,而不是实际的函数本身。