AngularJS没有表达式替换动态数据吗?

时间:2015-02-21 11:01:01

标签: javascript angularjs controller scope expression

首先:AngularJS初学者在这里,所以也许这个问题是最简单的,或者我还没有足够的知识(虽然我不知道要谷歌的内容;)

我刚刚开始使用Angular.js并尝试计算控制器中两个日期之间的日期差异。

代码:

angular.module('DateDiffer', []);

angular.module('DateDiffer').controller('CountdownCtrl', function($scope) {
    var dnow = Date.now();
    var dtgt = new Date(2015, 8, 14);
    var msecday = 24 * 60 * 60 * 1000;

    var diff = Math.round(Math.abs((dtgt.getTime() - dnow.getTime())/msecday));

    $scope.days = diff;
});

,简单的html代码段如下所示:

<div class="jumbotron area area-dark" ng-controller="CountdownCtrl">
    <div class="container content slogan" id="countdown">
        Computed <strong id="days">{{days}}</strong> days!
    </div>
</div>

到目前为止代码。

但是:{{days}}表达式不会从控制器计算到计算值。 有趣:如果我将控制器中的days-variable更改为静态 - 只是工作正常。

我觉得我在这里错过了一件令人讨厌的事情 - 那里有谁可以帮助我?

1 个答案:

答案 0 :(得分:2)

这是因为Date.now()在angular js

中无效

使用简单的新Date()作为当前日期。

app.controller('CountdownCtrl', function ($scope) {
   var dnow = new Date();
var dtgt = new Date(2015, 8, 14);
dtgt.setMonth(dtgt.getMonth() - 1);
var msecday = 24 * 60 * 60 * 1000;

var diff = Math.round(Math.abs((dtgt.getTime() - dnow.getTime())/msecday));

$scope.days = diff;
});

Fiddle

<强>更新: -

从月0开始减去一个月