Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在应用程序中部分使用angular 2的正确方法是什么?_Angular - Fatal编程技术网

在应用程序中部分使用angular 2的正确方法是什么?

在应用程序中部分使用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

我遇到的每个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,则可以不包含
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设计用于加载它包含的任何页面。我只是提出了一个与设计方式背道而驰的建议;更好的方法是不要把它加载到没有使用的页面中。我明白了,谢谢你的建议。我不是故意粗鲁什么的,我只是想把我的头绕在这上面。哦,不用担心。。。我从提问中学到了很多,就像你一样:)用来控制if
elemExists
的部分可以在服务器端完成。用来控制if
elemExists
的部分可以在服务器端完成。