在应用程序中部分使用angular 2的正确方法是什么?
我遇到的每个angular 2示例都希望angular 2在每个页面上都使用,并且希望AppComponent存在于页面上。如果缺少AppComponent,则会出现以下错误:在应用程序中部分使用angular 2的正确方法是什么?,angular,Angular,我遇到的每个angular 2示例都希望angular 2在每个页面上都使用,并且希望AppComponent存在于页面上。如果缺少AppComponent,则会出现以下错误: Error in :0:0 caused by: The selector "my-app" did not match any elements 在应用程序中部分使用angular 2,而应用程序的其余部分在服务器端呈现,正确且首选的方法是什么 在Angular 1中,如果特定页面不需要Angular,则可以不包含n
Error in :0:0 caused by: The selector "my-app" did not match any elements
在应用程序中部分使用angular 2,而应用程序的其余部分在服务器端呈现,正确且首选的方法是什么
在Angular 1中,如果特定页面不需要Angular,则可以不包含
ng app
指令。angular2与没有ng app
指令的等价物是什么?您实际上可以了解angular2是如何自我引导的。查看主文件中传输的代码,了解如何完成,并将您自己的逻辑添加到页面中,以确定是否运行它。您实际上可以了解angular2如何自行引导。查看主文件中传输的代码,了解如何完成,并将您自己的逻辑添加到页面中,以确定是否运行它。扩展@Paul Jerome Bordallo的答案,我们可以将引导脚本更改为如下所示:
const elemExists = document.getElementById("load-angular");
if(elemExists) {
platformBrowserDynamic().bootstrapModule(AppModule);
}
因此,在您的html上,我们可以有如下内容:
<my-app id="load-angular"></my-app>
为了获得我们想要的功能。扩展@Paul Jerome Bordallo的答案,我们可以将引导脚本更改为如下所示:
const elemExists = document.getElementById("load-angular");
if(elemExists) {
platformBrowserDynamic().bootstrapModule(AppModule);
}
因此,在您的html上,我们可以有如下内容:
<my-app id="load-angular"></my-app>
如果在服务器端呈现的应用程序可以包含引导Angular2应用程序所需的脚本和标记,则可以获得我们想要的功能。应用程序的其他部分将像往常一样呈现HTML,而不使用Angular 2标记和指令。唯一的区别是,如果在服务器端呈现的应用程序可以包含引导Angular2应用程序所需的脚本和标记,则相同的链接需要
href
属性,而不是路由链接。应用程序的其他部分将像往常一样呈现HTML,而不使用Angular 2标记和指令。唯一的区别是相同的链接需要href
属性,而不是routerLink
我认为使用Angular的目的是为了避免这样做。Angular1的优雅之处在于,如果不存在这样的指令,您不必有条件地引导。Angular2设计用于加载它包含的任何页面。我只是提出了一个与设计方式背道而驰的建议;更好的方法是不要把它加载到没有使用的页面中。我明白了,谢谢你的建议。我不是故意粗鲁什么的,我只是想把我的头绕在这上面。哦,不用担心。。。我从提问中学到了很多,就像你一样:)我认为使用Angular的目的是为了避免这样做。Angular1的优雅之处在于,如果不存在这样的指令,您不必有条件地引导。Angular2设计用于加载它包含的任何页面。我只是提出了一个与设计方式背道而驰的建议;更好的方法是不要把它加载到没有使用的页面中。我明白了,谢谢你的建议。我不是故意粗鲁什么的,我只是想把我的头绕在这上面。哦,不用担心。。。我从提问中学到了很多,就像你一样:)用来控制ifelemExists
的部分可以在服务器端完成。用来控制ifelemExists
的部分可以在服务器端完成。