13

我正在使用 .NET MVC 进行编码,并希望将存储的 DateTime 对象作为控制器中 Date 对象的初始值传递给前端。

这是我尝试过的:

ng-init="params.datetime = new Date()"

这似乎不起作用,并且出现语法错误。

如何将 Date 对象作为范围变量的初始属性传入?

http://jsfiddle.net/xX8LJ/

更新

我忘记在我的代码示例中包含 Razor 代码。

ng-init="params.datetime = new Date('@Model.DepartureTime.ToString("s")')"
4

2 回答 2

22

角度范围不知道Date

尝试使用:

 $scope.Date = new Date();

之后:

<div ng-controller="myController"
     ng-init="params.datetime = Date"
 >Current time: {{params.datetime}}</div>

演示 1Fiddle

作为您编辑的答案,

重写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>

演示 2Fiddle

于 2013-12-04T10:25:32.923 回答
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函数的位置

于 2016-07-15T21:52:48.103 回答