javascript - AngularJS 没有用范围内的动态数据替换表达式?

标签 javascript angularjs controller scope expression

首先:这里是 AngularJS 初学者,所以也许这个问题是有史以来最简单的问题,或者我还没有足够的知识(尽管我不知道要用谷歌搜索什么;))

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

代码:

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}} 表达式不会被计算为来自 Controller 的计算值。 有趣:如果我将 Controller 中的天数变量更改为静态变量 - 就可以正常工作。

我想我在这里遗漏了一个实质性的东西 - 有人可以帮助我吗?

最佳答案

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

对当前日期使用简单的 new 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开始减一个月

关于javascript - AngularJS 没有用范围内的动态数据替换表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28644993/

相关文章:

javascript - Sequelize - 将字段映射到模型定义中的字段别名

javascript - 如何检查 promise 返回值并在angularjs中采取行动?

javascript - AngularJS 使用 selectize 和 ng-repeat 设置多选下拉列表的值

javascript - Angular隐藏上传并显示新上传的图片

php - Controller 类存在但未找到

javascript - 在 Angular 中的 dom 元素上使用两次 ng-controller

python - USB Controller 在 Pygame 中不起作用

javascript - ionic 响应表填充

javascript - 如何计算 list.js 中当前未显示的已选中复选框?

javascript - 如果 html 的内容与字符串匹配,则更改它的内容