私は角度経路を使用しています。 に基づいて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
EDIT:追加した行static $inject: string[] = ['$routeParams'];
私のコードに
コントローラーは登録されていますか? –
はい。 ここで完全なTypescriptコードをアップロードしました:http://codepen.io/alexmallinger/pen/qNQRGJ –
'サービス'配列なしでコントローラを登録しようとします:angular.module( 'app.controllers')。controller(controller、app .controllers [className]); ' –