gpt4 book ai didi

javascript - Angular 将日期对象传递给指令

转载 作者:行者123 更新时间:2023-12-02 15:25:24 30 4
gpt4 key购买 nike

我正在尝试通过属性将日期对象传递给指令。但日期被解析为 ISO 字符串,我无法将其解析回日期对象。

正确且最简单的方法是什么?

这是我的代码:

html:

<body ng-app="myApp">
<div ng-controller="ctrl">
<div myDir date={{date}}></div>
</div>
</body>

Controller :

var app = angular.module('myApp', []).controller('ctrl', function($scope) {
$scope.date = new Date();
});

指令:

app.directive('myDir', function() {
return {
template: '',
scope: {},
link: function(scope, el, attrs){
console.log('attrs.date: ', attrs.date;);
var d = new Date(d);
console.log('date: ', d);
}
};
});

输出为:attrs.date: "2015-11-16T07:05:53.159Z"日期:无效日期

我不想使用通过“=”在范围上获取参数的方式。还有其他方法可以将日期发送到指令吗?

谢谢。

最佳答案

当前,您正在从属性获取值,然后再次将该值从字符串转换为日期,这就是您的日期变得无效的原因。

我建议您不要通过属性传递值,而是从指令的隔离范围传递该值,这将传递对象值而不需要任何转换。

标记

<div my-dir my-date="date"></div>

指令

app.directive('myDir', function() {
return {
template: '',
scope: {
myDate : '=' //mapped with `my-date` attribute on directive element.
},
link: function(scope, el, attrs){
console.log('date: ', scope.myDate );
}
};
});

关于javascript - Angular 将日期对象传递给指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33730717/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com