AngularJS最佳的动态加载数据的方法
AngularJS最佳的动态加载数据的方法
在我的AngularJS应用程序中,我有一个标准的CRUD组件,用于管理大部分系统实体。这个组件(一个指令)基本上是一个表格,它接收其列元数据(JSON)并装饰表格。我的系统中有几个屏幕使用这个指令作为模板,它们之间唯一的区别是根据实体名称传递给它的列元数据数组。只是为了举例,上面是到达这个屏幕的路由。注意,一个单独的控制器处理所有“基本”实体,并且它获得的所有信息都是实体名称。
我的问题是关于实际上将列元数据数组检索到BasicCrudController
的服务,根据实体名称(这个名称就像它的唯一标识符)。由于有多个实体使用这个模板,我不想将所有实体的列信息都保存在一个包含巨大的switch
语句的单个文件中(如上所示)。我希望能够为某些实体延迟加载这些信息,以加快系统的启动速度。
然而,一些列定义在实体之间是共享的,所以最好的解决方案是能够“扩展”返回的列或以某种方式重用一组列。最终,最好的解决方案将是这样的:
function MostBasicService() { this.getColumns = function(entityName) { return [column1JSON, column2JSON, ...]; } } /* 特定于Foo实体。只有在需要时才加载。 */ function FooService() { this.getColumns = function(entityName) { return MostBasicService.getColumns(entityName) .concat(columnFoo1, columnFoo2, ...); } } /* 特定于Foo2实体。只有在需要时才加载。 */ function Foo2Service() { this.getColumns = ... }
总之,我想知道使用AngularJS实现这些服务的最佳方法,甚至是否应该将它们作为服务。谢谢。