对于我们的项目,我们正在研究mvc 5应用程序,它为角度2应用程序提供服务。对于捆绑,我们使用Webpack。
现在问题是某些组件必须使用呈现cshtml视图的mvc控制器加载html。对于其他组件,我们使用静态html文件。
我想配置Webpack,以便“静态”组件html在组件中呈现为内联html,并且templateUrl保留用于需要动态呈现html的组件。
这是我尝试过的很多事情之一,但我无法获得包含和排除工作。应用程序组件需要服务器呈现的cshtml。
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader', 'angular2-template-loader'], // here i want to inline the html
exclude: ["/client/src/app/app.component.ts"]
},
{
test: /\.ts$/,
loaders: ['awesome-typescript-loader'], // here i want to keep the templateUrl so that the cshtml can be rendered
include: ["/client/src/app/app.component.ts"]
},
答案 0 :(得分:2)
我建议您不要使用'angular2-template-loader'
,因为它只是将require()
添加到templateUrls
,您可以自行完成。
然后您需要在为您的主要角色组件提供服务的<base href="@Url.Content("~")" />
页面中添加*.cshtml
然后,对于需要从呈现的MVC视图获取模板的组件,设置此项:
@Component({
templateUrl: "MvcController/MvcActionName",
})
export class AppComponent {
对于需要静态模板的组件,请尝试以下操作:
@Component({
moduleId: module.id,
template: require("./app.some.component.html"),
styleUrls: [require("./app.some.component.css")],
})
export class SomeComponent {
将捆绑静态模板,其他的将从MVC操作下载。