问题
我试图建立一个相当复杂的角度组件,我不确定最好的方法。
如果我必须将我的组件描述为函数,则主要参数为:
所以为了给你一个例子我可能想要创建一个包含这些参数的列表:
我不确定这是否是最佳方法,但该组件应该能够自行处理元素列表,而不应该通过其容器接收它。
可能的解决方案
1
第一个明显的解决方案是让容器管理元素列表(第一个参数)并转换元素模板和操作。
<my-list>
<elements>
<div ng-repeat="elem in $ctrl.getData()>
<element>
<user e="elem"> </user>
</element>
<actions>
<button action="$ctrl.delete(elem)>delete</button>
</actions>
<elements>
</my-list>
2
一个完全不同的解决方案是将所有内容作为组件的属性传递
<my-list>
data-getter="$ctrl.getData"
template="user"
actions="[{action: deleteUser, icon: deleteIconPath, text: 'delete'}]"
</my-list>
1 vs 2比较
解决方案1似乎是非常标准的角度,但在我的情况下,它将意味着很多冗长和重复的代码,我不喜欢它太多。解决方案2似乎完全没有标准,我担心这可能会导致一些我现在无法预见的问题。
看起来像&#34;趋势&#34;灵感来自于灵感,是让一些顶级组件管理所有数据,让子组件通过单向数据绑定访问适当的数据。当然,仅仅因为这种建筑风格很受欢迎并不意味着它适合我,但我不想反对这个框架。
问题
所以主要问题是: