Mar*_*coS 5 prototype angularjs
我正在写我的第一个新的Angularjs项目.
我需要将自定义方法(比方说addHours())添加到javascript类中,比方说Date().
为了完整性,这是我的(工作)方法:
Date.prototype.addHours = function(h) {
this.setHours(this.getHours() + parseInt(h));
return this;
}
Run Code Online (Sandbox Code Playgroud)
这是推荐的方法吗?在哪里放置原型功能,所以我们可以通过我的所有项目获得它们?我应该更好地创建一个新的Date类吗?我应该更好地定义角度服务吗?
也许这篇文章可以给你一些启示。
此外,您可以将该代码片段包含在 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
};
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1953 次 |
| 最近记录: |