关于在角1.5.8分量内转换的问题,以及它的用途。
以下是一些代码示例;
var app = angular.module('app', [])
function AccordionController () {
var self = this;
// add panel
self.addPanel = function(panel) {
// code to add panel
}
self.selectPanel = function() {
//code to select panel
}
}
// register the accordion component
app.component('accordion', {
template: '<!---accordion-template-->',
controller: AccordionController
}
function AccordionPanelController () {
// use parents methods here
var self = this;
// add panel
self.parent.addPanel(self);
// select panel
self.parent.selectPanel(self);
}
// register the accordion-panel component
app.component('accordionPanel', {
// require the parent component
// In this case parent is an instance of accordion component
require: {
'parent': '^accordion',
template: '<!---accrodion-panel-template-->',
controller: AccordionController
}
我的问题是,最好使用transclude将所有相关面板嵌套在父级中,或者将数据数组传递给父级,这将根据使用绑定传入内部的数组循环所需数量的面板。
由于
//添加了
非常感谢您的回复,我可能需要转换的一个例子是以下代码
<modal modal-id="editCompany" title="Edit Company"> <company-form company="$ctrl.company"></company-form> </modal>
这里我们有一个模态组件,其中可能包含其他各种组件,在上面的示例中,我正在添加公司表单,但这可能是一个联系表单。还有另一种方法吗?
答案 0 :(得分:0)
我非常广泛地使用角度。管理和显示大量数据的两个企业工具,数十个交互式小部件模块,所有这些。
从来没有,我曾与转录有任何关系。在工作中,我们被明确告知不要使用它(链接功能)。我认为这是一件好事,而Angular 2的表现似乎并非完全没有理由。
我会使用迭代来布置所需数量的项目。在工作中,这不是一个选择,因为转换不是一个选择。
答案 1 :(得分:0)
在组件架构中使用transclude
的事情是,它在视觉上打破了单一责任的概念和对架构的混淆。
<html>
<navigation></navigation>
<accordion>
<accordion-panel></accordion-panel>
</accordion>
<footer></footer>
</html>
在此示例中,您知道您的页面有导航菜单,手风琴和页脚。但是在索引级别(或根组件),你不想知道/看到手风琴包含什么。
因此,accordion-panel组件应仅出现在其直接父组件中。
至于你的另一个问题,通过使用require
或attributes
,您可以传递一组面板,您可以在手风琴组件中使用ng-repeat进行迭代。
app.component('accordion', {
template: `<accordion-panel ng-repeat="..."></accordion-panel>`,
controller: AccordionController
}