Javascript 在构建复杂的角度组件时,我应该使用属性还是转换?
问题 我正在尝试建立一个非常复杂的角度组件,我不确定最好的方法是什么 如果我必须将我的组件描述为一个函数,那么主要参数将是:Javascript 在构建复杂的角度组件时,我应该使用属性还是转换?,javascript,angularjs,Javascript,Angularjs,问题 我正在尝试建立一个非常复杂的角度组件,我不确定最好的方法是什么 如果我必须将我的组件描述为一个函数,那么主要参数将是: 生成元素列表的函数 呈现这些元素的模板(如果是a类型的元素,请使用模板a,依此类推) 可以应用于列表元素的可能操作的列表(带有一些用于显示它们的附加数据,如用于构建按钮的文本和图标) 因此,为了给您一个示例,我可能想创建一个包含以下参数的列表: 检索10个用户的函数 “用户”元素的模板 操作列表[{action:deleteUser,icon:deleteIconP
- 生成元素列表的函数
- 呈现这些元素的模板(如果是a类型的元素,请使用模板a,依此类推)
- 可以应用于列表元素的可能操作的列表(带有一些用于显示它们的附加数据,如用于构建按钮的文本和图标)李>
- 检索10个用户的函数
- “用户”元素的模板
- 操作列表[{action:deleteUser,icon:deleteIconPath,text:'delete'}]
<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>
data getter=“$ctrl.getData”
template=“用户”
actions=“[{action:deleteUser,icon:deleteIconPath,text:'delete'}]
1对2比较
解决方案1对于angular来说似乎是非常标准的,但在我的例子中,它意味着大量的冗长和代码的重复,我不太喜欢它。解决方案2似乎完全不符合标准,我担心这可能会导致一些我现在无法预见的问题
看起来,flux所激发的“趋势”是让一些顶级组件管理所有数据,并让子组件通过单向数据绑定访问适当的数据。当然,仅仅因为这种架构风格很流行并不意味着它适合我,但我不想反对框架
问题
因此,主要问题是:
- 子组件自己(当然是通过服务)获取数据可能会有问题吗
- 我描述的第二个解决方案是不是以我现在无法发现的某种基本方式“错误”
- 对于案例1,有没有一种方法可以让转置代码访问组件元素(我的意思是将ng repeat移动到组件内部,并让转置代码访问对ng repeat作用域的引用)
- 你有没有其他的建议来建造这个东西