角度:HTML画布应该是组件还是服务?

时间:2018-09-05 21:44:55

标签: angular typescript model-view-controller raphael

我有一个基本的绘图应用程序,它使用Javascript(实际上是ts)实现了MVC框架,我想将其移植到Angular中。我有一个模型来处理数据,有一个视图在画布上绘制形状,还有一个控制器来更新模型和视图组件。在移植到Angular时,显然该模型应该是服务。但是,控制器似乎应该是具有以下任一功能的组件:1)作为子组件的View(没有任何实际的HTML,因为它只是采用HTML canvas组件并与之一起运行)或服务。在这种情况下最好的/典型的方法是什么?

2 个答案:

答案 0 :(得分:0)

  

HTML画布应该是组件还是服务?

组件。 HTML /渲染到屏幕上的东西作为组件是有意义的。

答案 1 :(得分:0)

您可能听说过MVC(模型视图控制器)或MVVC(模型视图控制器)

服务从本质上扮演了榜样的角色,应该承担繁重的任务。

该视图呈现了一些东西,除了将画布绑定到div标签外,您似乎并不需要这些东西。

控制器提供了服务和视图之间的轻量级通信。

鉴于您实际上没有视图,因此使用属性指令(AKA指令)会更好。将指令视为没有视图的组件。

您可以将服务与属性指令一起使用,尽管我从未尝试过,而且文档似乎也没有涉及它,但是它的概率非常简单,可以通过构造函数使用DI(依赖注入)。

这是属性指令的文档:

https://angular.io/guide/attribute-directives

从文档中注意到,组件正式是一种指令类型,但在日常使用中很少被提及。