目前我正在致力於Durandal 2.0項目。 最初我使用這個JavaScript代碼來執行我的shell.js(ViewModel),它工作得很好。TypeScript中JavaScript的等效
初始JavaScript代碼(工作一個)
define(['plugins/router', 'durandal/app'], function (router, app) {
return {
router: router,
search: function() {
app.showMessage('Search not yet implemented...');
},
activate: function() {
router.map([
{ route: '', title:'Welcome', moduleId: 'viewmodels/welcome', nav: true },
{ route: 'flickr', moduleId: 'viewmodels/hello', nav: true }
]).buildNavigationModel();
return router.activate();
}
};
});
現在我嘗試使用打字稿。 所以我寫了這個代碼(下一個),這是不工作 打字稿代碼:
/// <reference path="../../Scripts/typescripts/jquery/jquery.d.ts" />
/// <reference path="../../Scripts/typescripts/knockout/knockout.d.ts" />
/// <reference path="../../Scripts/typescripts/durandal/durandal.d.ts" />
import _config = require('config');
import _router = require('plugins/router');
import _app = require('durandal/app');
class shell {
//config = new _config.Config();
app = _app;
router = _router;
activate() {
this.router.map([
{ route: '', title: 'Welcome', moduleId: 'viewmodels/welcome', nav: true },
{ route: 'flickr', moduleId: 'viewmodels/hello', nav: true }
]).buildNavigationModel();
return this.router.activate();
}
}
打字稿的輸出: 由打字稿(不工作)生成的JavaScript代碼
/// <reference path="../../Scripts/typescripts/jquery/jquery.d.ts" />
/// <reference path="../../Scripts/typescripts/knockout/knockout.d.ts" />
/// <reference path="../../Scripts/typescripts/durandal/durandal.d.ts" />
define(["require", "exports", 'plugins/router', 'durandal/app'], function(require, exports, ___router__, ___app__) {
var _router = ___router__;
var _app = ___app__;
var shell = (function() {
function shell() {
//config = new _config.Config();
this.app = _app;
this.router = _router;
}
shell.prototype.activate = function() {
this.router.map([
{ route: '', title: 'Welcome', moduleId: 'viewmodels/welcome', nav: true },
{ route: 'flickr', moduleId: 'viewmodels/hello', nav: true }
]).buildNavigationModel();
return this.router.activate();
};
return shell;
})();
});
任何人都可以告訴我什麼是問題? 我得到的錯誤是這樣的,
無法解析綁定。
綁定值:ATTR:{HREF:router.navigationModel()[0] .hash}
消息:路由器沒有定義;
查看:views/shells;
的moduleId:的ViewModels /殼
你在編譯過程中遇到了什麼錯誤,以及你正在使用什麼版本的Typescript? –
您不是從模塊返回外殼,只從構造函數返回。 – Tyrsius