2017-01-13 3 views
0

Я пытаюсь импортировать html-шаблон в текст компонент и его сообщение об ошибке. Я использую Angular 1.5.Использование 'import * as' в компоненте машинописного текста дает ошибку -

компонент выглядит следующим образом ...

import * as template from './home.template.html'; 
import { HomeController } from './home.controller'; 

export const HomeComponent = { 
    bindings: { 
     conf: '<', 
    }, 
    controller: HomeController, 
    template, 
}; 

И то добавляется к модулю, как это ...

import * as angular from 'angular'; 

import { HomeComponent } from './home.component'; 

export const HomeModule = angular.module('home', []) 
.component('home', HomeComponent); 

И ошибка я получаю ...

Аргумент типа '{bindings: {conf: string;}; controller: typeof HomeCon ... 'не присваивается параметру типа «IComponentOptions». Типы свойств «шаблон» несовместимы .. Тип 'typeof' .html '' не может быть присвоен типу 'string | ((... args: any []) => string) | (string | ((... args: any []) => string)) [] '. Тип 'typeof' .html '' не присваивается типу '(string | ((... args: any []) => string)) []'. Свойство 'find' отсутствует в типе 'typeof' * .html ''.

Если я добавлю template: template.toString() в HomeComponent, это сработает. Но это мне не нравится. Любые другие предложения?

+0

У вас есть объявление модуля для HTML-файлов? – Kalle

+0

Возможный дубликат [Возможно ли импортировать HTML-файл в виде строки с помощью TypeScript?] (Http://stackoverflow.com/questions/36649795/is-it-possible-to-import-an-html-file-as -a-string-with-typescript) – Kalle

ответ

2

Где-то в ваших объявлениях типа вы должны объявить модуль заканчивающегося .html

declare module '*.html' { 
    const template: string; 
    export default template; 
} 

с этой декларацией вашего код должен работать без другого изменения

+0

Это правильно. Но подумайте о том, что важное заявление нужно будет обновить, потому что в настоящее время оно неверно –

+0

Круто спасибо! –

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