我正在写我的第一个新的
Angularjs项目.
我需要将自定义方法(比如addHours())添加到javascript类,比如Date().
为了完整性,这是我的(工作)方法:
Date.prototype.addHours = function(h) { this.setHours(this.getHours() + parseInt(h)); return this; }
这是推荐的方法吗?在哪里放置原型功能,所以我们可以通过我的所有项目获得它们?我应该更好地创建一个新的Date类吗?我应该更好地定义角度服务吗?
解决方法
也许
this article可以给你一些见解.
此外,您可以将该片段包含在index.html上的JS文件中,这将使应用程序中的所有Date对象都具有addHours.我倾向于为任何标准库“增强”执行此操作,因此我可以轻松识别标准库对象的偏差.
更新:
yourApp.factory( 'MyDate',function() { //Constructor function MyDate( date ) { this.date = date; //Wrapping a JS date object. //Probably want to add some safety here to make sure it IS a date obj } MyDate.prototype.addHours( h ) { this.date.setHours( this.date.getHours() + parseInt(h) ); } return MyDate; }); yourApp.controller( 'MyDateController',function( $scope,MyDate ) { $scope.someMethod = function(h) { //Some trigger,UI or what not $scope.myDate = new MyDate( new Date() ); $scope.myDate.addHours(h); //Do something with the new date }; });