Свойство '$routeConfig' не существует для типа '($router: any) => void'

Я пытаюсь использовать угловой новый маршрутизатор в v1.4. Я использую Typescript. Когда я пытаюсь скомпилировать, я получаю следующую ошибку.

Property '$routeConfig' does not exist on type '($router: any) => void'

Это мой код

 /// <reference path="../Scripts/typings/angularjs/angular.d.ts"/>
/// <reference path="../Scripts/typings/angularjs/angular-route.d.ts"/>
module Application {
    "use strict";
    angular.module("app", ['ngNewRouter']);
    export var getModule: () => ng.IModule = () => {
        return angular.module("app");
    }

    getModule().controller('AppController', ['$router', AppController]);

    AppController.$routeConfig = [{
        path: '/',
        component: 'home'
    }, {
            path: '/detail/:id',
            component: 'detail'
        }, {
            path: '/login',
            component: 'login'
        }];

    function AppController($router) {

    }

}

Любая помощь приветствуется. Благодарю.

2 ответа

Решение

Я заставил это работать как-то. Ниже приведен код. Теперь новый маршрут компилируется и работает без ошибок.

/// <reference path="../Scripts/typings/angularjs/angular.d.ts"/>
/// <reference path="../Scripts/typings/angularjs/angular-route.d.ts"/>
module Application {
    "use strict";
    angular.module("app", ['ngNewRouter']);
    export var getModule: () => ng.IModule = () => {
        return angular.module("app");
    }

    var AppController: any, $routeConfig: any;

    getModule().controller('AppController', ['$router', AppController = ($router) => {    }]);

    AppController.$routeConfig = [
        {
            path: '/',
            component: 'home'
        },
        {
            path: '/detail/:id',
            component: 'detail'
        },
        {
            path: '/login',
            component: 'login'
        }];
}

У вас есть пара вариантов, либо использовать модуль или класс.

Маршрут модуля:

module AppController {
    export let $routeConfig = [{
        path: '/',
        component: 'home'
    }, {
        path: '/detail/:id',
        component: 'detail'
    }, {
        path: '/login',
        component: 'login'
    }];
}

function AppController($router) {

}

и маршрут класса:

class AppController {
    static $routeConfig = [{
        path: '/',
        component: 'home'
    }, {
        path: '/detail/:id',
        component: 'detail'
    }, {
        path: '/login',
        component: 'login'
    }];

    constructor($router) {

    }
}

В зависимости от ваших потребностей, используйте тот, который подходит вам лучше всего.

Другие вопросы по тегам