我有一个具有不同页面的应用程序,并且大致每个页面都有自己的js(由typescript编译器生成)。每个页面的document.ready方法都有一些共享属性,我希望将共享函数/属性放入基本的typescript类中。
所以看起来应该是
class PageX extends BasePage
{
onLoad => which should act like document.ready
}
这可以吗?我不确定这是否可能?
答案 0 :(得分:4)
如果您想在每个页面中使用基本功能,那么您需要在每个页面中包含基本脚本。派生类不会将父功能复制到子项中。
您可以在.ts文件中包含一个包含公共行为和属性的PageBase类,然后从每个页面特定行为派生一个类。如下所示:
// Base.ts
class PageBase {
commonProperty: any;
constructor(doc:HTMLDocument){
doc.onload = function(){
alert('Common code here');
}
}
}
上面的编译输出(base.js)将通过每个页面上的脚本标记包含在内,然后是每页生成的脚本,如...
// pageX.ts
/// <reference path="Base.ts"/>
class PageX extends PageBase {
constructor(){
super(window.document);
// Rest of my code here...
}
}
这听起来是关于你所追求的吗?
答案 1 :(得分:1)
我认为逻辑不属于一个类。
但是如果你在.ts文件的顶部声明一个函数var并从你的外部doc.ready事件中调用它,那么你可以在类实例中监听该函数的变化。
见