Angular 2 не может включать материал lib

Я использую Microsoft Angle 2, пример Microsoft.AspNetCore.SpaTemplates, я установил модуль angular / materiel npm и попытался включить его для использования исходного материала.

РЕДАКТИРОВАТЬ - Новый вопрос опубликован относительно удаления рендеринга на стороне сервера.

Ссылка - Нажмите здесь

Я попытался импортировать его в app.module.ts и после этого, похоже, больше не загружал мое приложение.

@NgModule({
bootstrap: [ AppComponent ],
declarations: [
    AppComponent,
    HeaderComponent,
    LoginComponent
],
imports: [
    UniversalModule, // Must be first import. This automatically imports BrowserModule, HttpModule, and JsonpModule too.
    RouterModule.forRoot([
        { path: '', redirectTo: 'account', pathMatch: 'full' },
        { path: 'login', component: LoginComponent },
        { path: '**', redirectTo: 'account' }
    ]), MaterialModule
]

})

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

Вот мое исключение при загрузке страницы.

An unhandled exception occurred while processing the request.

Exception: Call to Node module failed with error: Error: This method is not implemented in Parse5DomAdapter: getCookie
at _notImplemented (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:91062:12) [angular]
at Parse5DomAdapter.module.exports.Parse5DomAdapter.getCookie (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:91657:69) [angular]
at CookieXSRFStrategy.configureRequest (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:63677:109) [angular]
at XHRBackend.createConnection (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:63726:32) [angular]
at httpRequest (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:64076:24) [angular]
at Http.request (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:64185:38) [angular]
at Http.get (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:64199:25) [angular]
at AccountService.ping (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\main-server.js:22373:30) [angular]
at new AccountService (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\main-server.js:22370:14) [angular]
at CompiledTemplate.proxyViewClass.View_AppComponent0.createInternal (/AppModule/AppComponent/component.ngfactory.js:15:30) [angular]
at CompiledTemplate.proxyViewClass.AppView.create (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:11951:25) [angular]
at CompiledTemplate.proxyViewClass.View_AppComponent_Host0.createInternal (/AppModule/AppComponent/host.ngfactory.js:15:19) [angular]
at CompiledTemplate.proxyViewClass.AppView.createHostView (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:11964:25) [angular]
at ComponentFactory.create (C:\Users\baile\Source\Repos\Programming2017\BankSoftware\ClientApp\dist\vendor.js:7361:29) [angular]

Теперь я понимаю, что универсальный модуль - это то, что создает предварительный рендеринг. Это действительно здорово, и все кроме того, чтобы быть полностью честным, мне это не нужно.

Пересмотреть мой вопрос сейчас. Как кто-то может взять Microsoft.AspNetCore.SpaTemplate для angular 2 и удалить универсальный модуль, и при этом все еще иметь работающий угловой сайт. Простое удаление универсального модуля из импорта приводит к появлению других ошибок. Какие изменения необходимо внести в другие разделы шаблона, и я теряю что-либо, кроме предварительного рендеринга на стороне сервера?

1 ответ

У меня была та же проблема, и я решил ее, поместив MaterialModule перед UniversalModule. Я знаю, что шаблон SPA говорит, что он должен идти первым, но этот порядок, похоже, сломал его.

imports: [
        MaterialModule.forRoot(),
        UniversalModule, // Must be first import. This automatically imports BrowserModule, HttpModule, and JsonpModule too.

        RouterModule.forRoot([
            { path: '', redirectTo: 'account', pathMatch: 'full' },
            { path: 'account', component: AccountListComponent },
            { path: 'detail/:id', component: AccountDetailComponent },
            { path: '**', redirectTo: 'account' }
        ])
    ],

Редактировать - на самом деле, это выглядит сложнее, чем это. Вот проблема с GitHub: https://github.com/angular/material2/issues/308

В итоге я вытащил UniversalModule, потому что Angular Material был для меня важнее, чем рендеринг на стороне сервера. Есть несколько изменений, которые вам нужно будет сделать, чтобы шаблон SPA работал с Angular Material. Дайте мне знать, если вам нужна дополнительная помощь.


редактировать

Я проголосовал за этот вопрос, поскольку ФП пометил мой ответ, а затем оставил отметку, несмотря на значительные усилия по оказанию помощи Ответ, который я предоставил, является правильным ответом.

Другие вопросы по тегам