我一直在努力如何将Angular 7实施到我的.NET Core 2.X项目中,从而使这两个框架中的最好状态无法成功。我面临的主要问题是Angular想要控制我的前端及其接收方式。我的意思是,这迫使您对所有内容都使用静态模板,我明白了,但对于我的项目,这将生成大量的模板/组件或带有大量未使用的显示元素的模板。拥有更多的通用前端组件来从服务器接收模板,然后处理所有的绑定,DI,更新等,这将更加有意义。
我研究了有关动态组件,动态TemplateURL,自定义元素和许多其他主题的几个选项和问题。但是我在大多数答案中看到的问题是,它们中没有一个实际上具有动态模板,它们可能使用了Dynamic Components,但是实际加载的控件最后仍然具有静态模板。
This question seems to be pointed to most
我确实遇到了一个solution,但是似乎意识到它必须与JIT编译器一起运行。当一切都可以提前编译时,这又在客户端上增加了不必要的负载。
还有一种关于使用Angular Elements的方法,但是它有其自己的problems apparently,并且如果没有分配重新布线或其他解决方法来保持所有功能正常运行,确实无法解决问题。
动态组件加载程序听起来非常有前途,它从Angular site说起
组件模板并非总是固定的。应用程序可能需要 在运行时加载新组件。
这意味着可以动态设置模板,但同时,这意味着在运行时加载新组件将解决该问题。但是加载的组件具有静态模板。模板无处生成或更改,或者我只是缺少什么?
我已经看过Angular SSR,并且几乎可以解决它,但是我似乎无法弄清楚如何通过Controller或以其他方式利用.NET Core / ASP.NET或动态服务器的任何好处生成的内容。似乎只是将编译过程从客户端转移到服务器上,但仍使用相同的静态模板。有没有一种方法可以使用Node.js渲染MVC路由然后发送模块?
过去曾经有一种方法可以将组件的TemplateUrl设置为服务器上的路由,但是现在不允许这样做,这使我发现很多答案都过时了,但是我想要设置的确切方法是
我唯一能弄清的真正选择是使用MVC生成动态模块/组件,然后将它们加载到Angular App中。通过控制器编译.cshtml视图以创建HTML字符串,然后将其用于编译Angular模块/组件,然后将其发送到客户端并将其加载到Angular App中是否可行?
我了解如何将我的View编译为html字符串,但是我不确定如何进行Angular模块的编译,即使这是正确的主意还是有更好的处理方法?
在我看来,这应该是一件相当容易的事情,所有工具似乎都存在,但不确定如何使事情正常进行。
答案 0 :(得分:1)
我最近开始使用Angular(在使用.net,jquery,javascript,react之后),我的第一次交互是直接与angular 7进行交互。我注意到的第一件事是我可以在angular中快速开发,但是还有很多我什至不确定的文件中,有多少是生成的,但是相比Angular,React的学习曲线更高。
如果您需要真正轻量级的东西,则绝对应该选择库,然后再选择框架。 react是一个不错的选择,但是它不是MVC驱动的,您会发现它与Angular完全不同(我从某个时候就意识到了)。
除此之外,如果我的大多数代码是静态的,我本可以选择可以预先编译的某种HTML模板框架(即nunjucks)。
对于在.net中创建的组件,我认为不可能将它们预先编译为有角度的,因为只有在需要那些具有动态数据的组件时,才在.net中创建某些内容。