I'am using angular-route。 基於this question我試圖獲取URL參數。AngularJS Typescript IRouteParamsService undefined
我收到以下錯誤: angular.js:13920 TypeError: Cannot read property 'zvar' of undefined
看來$routeParams
是未定義的。
我的路由配置: angular.module('app').config(['$routeProvider', function routes($routeProvider: ng.route.IRouteProvider) { $routeProvider .when('/', { templateUrl: 'views/start.html', }) .when('/calc/:zvar?', { templateUrl: 'views/calc.html', controller: 'app.controllers.calcCtrl' }) .otherwise({ redirectTo: '/' }); } ]);
我的URL:http://localhost:64025/#/calc?zvar=test123
構造函數的訪問:
interface IRouteParams extends ng.route.IRouteParamsService {
zvar: string;
}
export class calcCtrl implements IController {
static $inject: string[] = ['$routeParams'];
constructor(private $routeParams: IRouteParams) {
this.zvar = $routeParams.zvar;
console.log("Calc Controller: " + this.zvar);
}
zvar: string;
}
完全打字稿代碼:http://codepen.io/alexmallinger/pen/qNQRGJ
編輯:添加行static $inject: string[] = ['$routeParams'];
我的代碼
是否註冊了控制器? –
是的。 我在這裏上傳了完整的Typescript代碼:http://codepen.io/alexmallinger/pen/qNQRGJ –
嘗試註冊沒有'services'數組的控制器:'angular.module('app.controllers')。controller(controller,app .controllers [className]);' –