我在.NET MVC中进行编码,并希望将存储的DateTime对象作为控制器中Date对象的初始值传递给前端。
以下是我尝试的内容:
ng-init="params.datetime = new Date()"
这似乎不起作用,我收到语法错误。
如何将Date对象作为范围变量的初始属性传递?
更新
我忘了在代码示例中包含Razor代码。
ng-init="params.datetime = new Date('@Model.DepartureTime.ToString("s")')"
答案 0 :(得分:22)
角度范围不了解Date
尝试使用:
$scope.Date = new Date();
之后:
<div ng-controller="myController"
ng-init="params.datetime = Date"
>Current time: {{params.datetime}}</div>
演示1 Fiddle
作为您编辑的答案,
重写Date
作为方法:
$scope.Date = function(arg){
return new Date(arg);
};
和
<div ng-controller="myController"
ng-init="params.datetime = Date('Tue Feb 18 2013 00:00:00 GMT+0200 (CEST)')"
>Current time: {{params.datetime}}</div>
演示2 Fiddle
答案 1 :(得分:1)
另一种方法,在我的情况下,我在配置块中的$ rootScope中添加了一个now函数:
...
$rootScope.now = now;
/**
* returns now as a date
*
* @function
* @param arg {object} date arguments
* @returns {Date} now
*/
function now(arg) {
return new Date(arg);
}
...
然后可以像这样使用:
<div ng-init="product.date = $root.now();"...
或只是
<div ng-init="product.date = now();"...
但我更喜欢使用$ root,因此我们确切知道now
函数的位置