2015-10-13 2 views
0

Новое в TypeScript и попытка конвертировать из js в ts (с использованием углового 1.x). Вот контроллер. Имеет проблемы с преобразованием в ts. «module» - это элемент пользовательских данных в провайдере состояния ui-router.Проблемы преобразования углового контроллера 1.x в TypeScript

(function(module) { 
    "use strict"; 
    module.controller("aboutController", [ 
     "$state", 
     function($state) { 
      var vm = this; 
      // pass the module to the service to get the content for the about page 
      // $state.current.data.module 
      vm.content = $state.current.data.module; 
     } 
    ]); 
} (angular.module("app.ui"))); 

Моя последняя попытка с помощью TS:

module myApp.ui { 
    "use strict"; 
    class AboutController { 
     constructor(private $state: ng.ui.IStateProvider) { 
      this.content = $state.current.data.module; 
     } 
    } 
    angular.module("app.ui").controller("aboutController", AboutController); 
} 

Ошибки:
ошибка TS2339: свойство 'содержание' не существует на типе 'AboutController'.
ошибка TS2339: свойство 'current' не существует в типе 'IStateProvider'.

затруднительные:
(1) я использую IStateService, а не IStateProvider - 'текущую' ошибку ПОСТАНОВЛЯЕТ, # 2 выше. (2) добавить строку 'public content: string;' выше ctor - устраняет ошибку «content», № 1 выше. Thx @Brocco

+0

И что это не работает? – devqon

+0

Нашел мою первую проблему. Использул IStateProvider вместо IStateService. –

+0

Для ошибки «содержимого» мне нужно явно объявить член класса? Это требуется в TypeScript, в отличие от js? –

ответ

2

Свойство 'содержание' не существует на типа 'AboutController'

Вы должны объявить все свойства класса в машинописном:

class AboutController { 
    content: any; // property declaration 
    constructor(private $state: ng.ui.IStateProvider) { 
     this.content = $state.current.data.module; 
    } 
} 

недвижимости " тока "не существует на типе 'IStateProvide`

Использование IStateService. Примечание: это, как правило, услуги, которые вы вставляете в любом случае, и суффикс согласован.

Смежные вопросы