Angularjs 到 Angular 迁移:工厂原型
Angularjs to Angular Migration: factory prototype
我正在从 angularjs 迁移到 angular。我已经做了很多,但我仍然受制于工厂和原型。 Card代表打牌。
function Card() {
this.remoteId = 0;
this.version = 0;
this.name = "";
this.stars = 0;
}
Card.prototype = {
getFromRemote: getFromRemote,
initFromRemote: initFromRemote,
updateFromCard: updateFromCard,
createImage: createImage,
};
return (Card);
}
现在我只是想知道如何迁移它,因为 angular 中没有更多的工厂。我正在考虑像 angular 教程 https://angular.io/tutorial/toh-pt1 中那样使 Card 函数成为一个卡片界面。你认为这是个好主意还是我错过了什么?
任何帮助或想法将不胜感激!!!!
您可以结合使用抽象 class 和构造函数:
abstract class
获取原型的功能。
初始值设置逻辑可以放在constructor
里面。
playgrond-link
abstract class AbsCard {
abstract remoteId: number;
abstract version: number;
abstract name: string
abstract stars: number;
public initFromRemote(): void {
this.remoteId = 0;
}
public print() {
console.log(this);
}
}
class Card extends AbsCard {
public remoteId: number = 0;
version: number = 0;
name: string = '';
stars: number = 0;
public constructor() {
super();
/* other creation logic can come here */
}
}
let c = new Card();
c.print();
我正在从 angularjs 迁移到 angular。我已经做了很多,但我仍然受制于工厂和原型。 Card代表打牌。
function Card() {
this.remoteId = 0;
this.version = 0;
this.name = "";
this.stars = 0;
}
Card.prototype = {
getFromRemote: getFromRemote,
initFromRemote: initFromRemote,
updateFromCard: updateFromCard,
createImage: createImage,
};
return (Card);
}
现在我只是想知道如何迁移它,因为 angular 中没有更多的工厂。我正在考虑像 angular 教程 https://angular.io/tutorial/toh-pt1 中那样使 Card 函数成为一个卡片界面。你认为这是个好主意还是我错过了什么? 任何帮助或想法将不胜感激!!!!
您可以结合使用抽象 class 和构造函数:
abstract class
获取原型的功能。
初始值设置逻辑可以放在constructor
里面。
playgrond-link
abstract class AbsCard {
abstract remoteId: number;
abstract version: number;
abstract name: string
abstract stars: number;
public initFromRemote(): void {
this.remoteId = 0;
}
public print() {
console.log(this);
}
}
class Card extends AbsCard {
public remoteId: number = 0;
version: number = 0;
name: string = '';
stars: number = 0;
public constructor() {
super();
/* other creation logic can come here */
}
}
let c = new Card();
c.print();