AngularJS 没有用范围内的动态数据替换表达式?
AngularJS no expression replacement with dynamic data in scope?
首先:AngularJS 初学者,所以也许这个问题是有史以来最简单的问题,或者我还没有足够的知识(虽然我不知道 google 有什么用; ))
我刚开始使用 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}} 表达式不会被计算为来自控制器的计算值。
有趣:如果我将控制器中的天数变量更改为静态变量 - 就可以正常工作。
我想我在这里遗漏了一个实质性的东西 - 有人可以帮助我吗?
发生这种情况是因为 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;
});
更新:-
从0开始减去一个月
首先:AngularJS 初学者,所以也许这个问题是有史以来最简单的问题,或者我还没有足够的知识(虽然我不知道 google 有什么用; ))
我刚开始使用 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}} 表达式不会被计算为来自控制器的计算值。 有趣:如果我将控制器中的天数变量更改为静态变量 - 就可以正常工作。
我想我在这里遗漏了一个实质性的东西 - 有人可以帮助我吗?
发生这种情况是因为 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;
});
更新:-
从0开始减去一个月