Webpack 2 с angular 2 и asp.net mvc cshtml в качестве шаблона

У меня есть проект, работающий с Angular 2 и webpack 2, но в настоящее время я загружаю все свои шаблоны непосредственно в файл js без дополнительной загрузки шаблона с сервера. Это прекрасно работает.

@Component({
selector: 'logmonitor',
styleUrls: [ './logmonitor.component.less' ],
templateUrl: './logmonitor.component.html'
}) ...

но мне нужно загрузить только некоторые шаблоны из представления cshtml, и представления должны загружаться только с дополнительным запросом сервера, когда я открываю эти представления.

Я создал простое представление cshtml в папке с представлениями, и я могу напрямую «показать» его при вводе правильного контроллера/действия в URL-адрес. Это работает"

но я пытался установить это, чтобы загрузить шаблон

@Component({
  selector: 'testView',
  templateUrl: 'Logviewer/TestLogview',
}) ...

но webpack не скомпилирует представление, выдает ошибку

Module not found: Error: Can't resolve './Logviewer/TestLogview' in 'C:\SourceControl\WebLogViewer\App\Views\LogViewer'

правильно файл вставлен

C:\SourceControl\WebLogViewer\Views\LogViewer

но я не хочу, чтобы веб-пакет пытался разрешить этот URL-адрес, сам angular должен вызывать этот URL-адрес при загрузке представления. Я думал, что webpack не будет пытаться загрузить файл cshtml, если я не напишу «./» перед именем файла, но это не работает. Есть ли решение, как я могу запретить веб-пакету анализировать все templateUrl?

это мой текущий загрузчик для файлов html, но он не должен анализировать строку, потому что в конце нет .html :-/

{
   test: /\.html$/,
   use: ['raw-loader'],
   exclude: [helpers.root('App/index.html')]
},

person squadwuschel    schedule 06.02.2017    source источник


Ответы (1)


Вы можете найти рабочий пример в этом репо. https://github.com/timdows/webpages/tree/master/Angular2RazorViews

Ключ ленивая загрузка и

angular2-load-children-loader 

при загрузке зависимостей шаблона ts

person mcraa    schedule 10.03.2017