AngularJS过滤器模板绑定语法 - 不像docs?

时间:2014-03-20 20:27:16

标签: javascript angularjs syntax angularjs-filter

因此,在浏览angularJS文档时,我注意到各种过滤器模板都是这样的:

  

{{date_expression |日期:日期:格式}}

date:date是什么意思?

如果我运行以下代码: (JS小提琴http://jsfiddle.net/6Jt4h/2/

HTML:

<div ng-app="testApp" ng-controller="testCon">    
    {{dt1 | date : 'MM/dd/yyyy @ h:mma'}}<br>
    {{dt1 | date : dt1 : 'MM/dd/yyyy @ h:mma'}}
</div>

使用Javascript:

var testApp = angular.module('testApp', []);    
testApp.controller('testCon', function($scope) {
    $scope.dt1 = new Date();
});

我得到以下输出:

03/20/2014 @ 3:19PM
T3u 3PMr 20 2014 15:19:46 G3T-0500 (CentrPMl DPM2014lig3t Ti19e)

为什么第二行无法正常工作,即使它看起来是遵循语法的属性?

我是否理解正确的语法是:

  

{{date_expression |日期:格式}}

1 个答案:

答案 0 :(得分:0)

你似乎是对的。文档是错误的,正确的语法实际上是{{date_expression|date:format}

有关此错误的一些背景信息:Angular中的过滤器是作为基本函数实现的,因此您可以将其想象为类似function date(date, format)的内容。但是,当用作过滤器时, first 参数实际上是管道之前的值。 (在这种情况下,data_expression

你应该submit a pull request to improve this doc。否则,我会和我一起找到问题:)