Javascript 如何在angularjs中使用拆分

Javascript 如何在angularjs中使用拆分,javascript,html,angularjs,split,Javascript,Html,Angularjs,Split,我得到的日期为ng模型一样 2015年5月21日星期四18:47:07 GMT+0700(东南亚标准时间) 但它向我展示了控制台“TypeError:date.split不是一个函数”“如何修复它?” $scope.test = function(date) { console.log(date); $scope.d = (date.split(' ')[0]); $scope.m = (date.split(' ')[1]); $scope.y = (da

我得到的日期为ng模型一样

2015年5月21日星期四18:47:07 GMT+0700(东南亚标准时间)

但它向我展示了控制台
“TypeError:date.split不是一个函数”
“如何修复它?”

   $scope.test = function(date) {
    console.log(date);
    $scope.d = (date.split(' ')[0]);
    $scope.m = (date.split(' ')[1]);
    $scope.y = (date.split(' ')[2]);
    $scope.dd = (date.split(' ')[3]);

}

问题在于
date
不是字符串,而是对象实例。所以你不能在上面使用split。为了使用它,您可能需要首先将其转换为字符串。例如,像他的:

$scope.test = function(date) {
    date = date.toString();
    $scope.d = (date.split(' ')[0]);
    $scope.m = (date.split(' ')[1]);
    $scope.y = (date.split(' ')[2]);
    $scope.dd = (date.split(' ')[3]);    
};
当您控制台记录它时
console.log(日期)
它会自动调用
toString
,这就是为什么它看起来像一个字符串


另外,您确实不应该使用split来提取数据。使用对象的方法,如
getMonth
.getFullYear
等。

可能传递的日期变量不是字符串,而是没有
split()方法的日期变量。您可以继续并将其转换为可以拆分的字符串:

$scope.d = (date.toString().split(' ')[0]);
这会起作用,但效率不高,因为日期将被合成为字符串,然后再次解析。最好使用日期对象本身的属性:

$scope.d = date.getDate();
$scope.m = date.getMonth() + 1;
$scope.y = date.getFullYear();
等等

在上查找所有可用的方法。 更好的做法是保持日期本身的原样,只在视图中需要日期属性的地方使用它们,例如:

<div class="myDate">Year: {{date.getFullYear()}}
Year:{{date.getFullYear()}