2017-01-20 8 views
1
»

Наше веб-приложение (TypeScript 2.1.4) предназначает модуль amd и использует ///<amd-dependency /> для загрузки шаблона с помощью требований. Сегодня мы используем с успехом следующего синтаксиса для загрузки HTML строки в TPL переменный:amd-dependency устарела. Как использовать модуль импорта «

/// <amd-dependency path="text!tpl/components/header/header.view.html" name="tpl"/> 
declare var tpl: string; 

Отныне this directive is deprecated:

< /// драмы-зависимость />

это директива устарела. Использовать import "moduleName"; .

Чтобы заменить тройной директиву слэш мы использовали дикий модуль карты в local.d.ts файле:

declare module "text!*" { 
    var _: string; 
    export default _; 
} 

и заменить директиву с:

import tpl from "text!tpl/components/header/header.view.html"; 

компиляция с tsc отлично, но загрузка шаблона не удалась. Глядя на JS, компиляция производит:

define([text!tpl/components/header/header.view.html, ...],function(header_view_html_1, ...) method , как ожидалось, но затем использует header_view_html_1. по умолчанию в модуле.

Отладка js-файла, шаблон находится в переменной header_view_html_1, но не в свойстве header_view_html_1.**default**, которое не определено.

Почему машинописный шрифт создает это свойство по умолчанию? Как его избежать и сохранить header_view_html_1?

Edit: Я последовал за наставлениями из typescriptlang модулей Wildcard module declarations

declare module "json!*" { 
    const value: any; 
    export default value; 
} 
import data from "json!http://example.com/data.json"; 

ответ

0

Вам может понадобиться настроить оператор импорта ...

Это импортирует все в псевдониме от модуля.

import * as yourAlias from "..." 

Это импортирует определенные детали и делает их доступными напрямую.

import {thing, anotherThing} from "..." 
+1

Я уже пробовал 'импорт * в tpl из «text! tpl/components/header/header.view.html» ;, но он выдает ошибку компиляции: ошибка TS2345: аргумент типа «typeof» text! * «'не присваивается параметру типа' string ' – NicoD

0

Поскольку мы перенастройки системы сборки для webpack2, я в конечном итоге с помощью html-loader:

module: { 
    rules: [ 
     { 
     test: /\.html$/, 
     use: "html-loader" 
     } 

и загрузить шаблон с:

let tpl = require("./header.view.html"); 

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

  • Нет связанных вопросов^_^