我是打字稿新手。我正在尝试将Backbone包含在打字稿中并执行路由。我正在使用节点服务器为该应用程序提供服务。但是我无法导入 .ts 文件中的文件。
我的 tsconfig.json 文件如下。
"compilerOptions": {
"target": "es6",
"module": "UMD",
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
我的 index.html 为
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<style type="text/css">
</style>
</head>
<body style = "width: 100%;">
<div class="nav">
<div class="bus"><a href="" >Home</a></div>
<div class="bus"><a href="#ordinaryBus" >OrdinaryBus</a></div>
<div class="bus"><a href="#superLuxury" >SuperLuxury</a></div>
</div>
<div id="container"></div>
<script id="newVehicleTemplate" type="text/template">
<input class="registration-number" type="text"></input>
<button class="add">Add</button>
</script>
<script id="busTemplate" type="text/template">
<%= busName %>
<button class="delete">Delete</button>
</script>
<script src="node_modules/jquery/dist/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.4.0/backbone-min.js"></script>
<script type="text/javascript" src="app.js" ></script>
</body>
</html>
和我的 app.ts 文件如下
import AppRouter from './router';
class AppManager {
constructor(){
this.init()
}
private router: AppRouter;
// private BusModels: BusModels;
// constructor(options?any){
// super(options);
// )
// }
public init(){
this.initRouter();
}
private initRouter(): any{
this.router = new AppRouter();
this.router.on("VIEWHOME",this.viewHome,this);
this.router.on("VIEWBUSES",this.viewBuses,this);
Backbone.history.start();
return<any>this;
}
private viewHome(event){
console.log('From viewHome');
}
private viewBuses(event){
console.log('From ViewBuses');
}
}
new AppManager()
当我删除导入行时,将执行新的AppManager。但是,如果我添加导入行,则AppManager不会执行,并且不会引发任何错误。
我的路由器文件为
class AppRouter extends Backbone.Router
{
routess = {
'': 'viewHome',
'viewHome': 'viewHome',
'ordinaryBus': 'viewBuses',
'superLuxury': 'viewBuses',
};
constructor( options?: Backbone.RouterOptions) {
super(options);
this.routess = <any>{
'': 'viewHome',
'viewHome': 'viewHome',
'ordinaryBus': 'viewBuses',
'superLuxury': 'viewBuses'
};
(<any>this)._bindRoutes();
}
initialize() {
// can put more init code here to run after constructor
}
private viewHome() {
this.trigger("VIEW_HOME");
document.write("home Route Invoked");
return this;
}
private viewBuses() {
this.trigger("VIEW_BUSES")
document.write("bus Route Invoked");
return this;
}
}
export default AppRouter;
我找不到我犯错的地方。请纠正我。 预先感谢