UI Router Resolve и TypeScript

Мне любопытно, как я буду использовать разрешение UI Router с TypeScript.

.state("signin.notActivated", <ng.ui.IState> {
                    controller: "SigninCtrl",
                    controllerAs: "signin",
                    url: "/notActivated",
                    resolve: {
                        inProgress: function() {
                            return { formData : null }
                        }
                    }
                })

В моем контроллере я ввел свою решимость.

constructor(public $state : angular.ui.IState, private inProgress) {
            this.init();                
        }

        private init = () => {
            this.someData = this.inProgress.formData; // error
        }

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

введите описание изображения здесь

Можно ли это сделать?


person Thomas    schedule 15.01.2016    source источник
comment
TypeScript ничего не регистрирует. Это транспилируется в простой javascript, ничего больше. Я, кажется, скучаю по твоей ошибке. Единственное, что я заметил в вашем коде, это ссылка на класс контроллера. Обычно вместо этого я использую ссылку на машинописный текст, то есть без кавычек. Является ли javascript таким, как ожидалось?   -  person Bjørn Sørensen    schedule 16.01.2016
comment
@ Томас, ты смог решить эту проблему?   -  person harishr    schedule 26.08.2016


Ответы (2)


Попробуйте ввести его следующим образом:

static $inject = ['$state', 'inProgress'];
constructor(public $state : angular.ui.IState, private inProgress) {
    this.init();                
}
person Eyescream    schedule 21.01.2016

Убедитесь, что вы вызываете контроллер только через маршрутизатор. Вызов контроллера непосредственно из html через директиву ng-controller (ng-controller="SigninCtrl as signin" в вашем случае) не приведет к внедрению inProgress, и поэтому вы получите эту ошибку.

person elankumaran    schedule 31.03.2016