Javascript 角度1.5使用或不使用转置

Javascript 角度1.5使用或不使用转置,javascript,angularjs,Javascript,Angularjs,关于角度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

关于角度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
}
var-app=angular.module('app',[])
功能控制器(){
var self=这个;
//添加面板
self.addPanel=功能(面板){
//添加面板的代码
}
self.selectPanel=函数(){
//选择面板的代码
}
}
//注册手风琴组件
应用组件(“手风琴”{
模板:“”,
控制器:手风琴控制器
}
功能AccordionPanelController(){
//在这里使用父母的方法
var self=这个;
//添加面板
self.parent.addPanel(self);
//选择面板
self.parent.selectPanel(self);
}
//注册accordion面板组件
应用组件(“accordionPanel”{
//需要父组件
//在本例中,父对象是accordion组件的实例
要求:{
“父项”:“^accordion”,
模板:“”,
控制器:手风琴控制器
}
我的问题是,是否最好使用transclude将所有相应的面板嵌套在父级中,或者将一个数据数组传递给父级,这将根据使用绑定传递的数组循环出所需数量的面板

谢谢

//增加


非常感谢您的回复,下面的代码中有一个可能需要transclude的示例

<modal modal-id="editCompany" title="Edit Company"> <company-form company="$ctrl.company"></company-form> </modal> 


这里我们有一个模态组件,其中可能使用了多种其他组件,在上面的示例中,我添加了公司表单,但这可能是一个联系人表单。有其他方法吗?

我已经广泛使用angular。两个企业工具管理和显示大量数据,数十个内部小部件模块等等

我从来没有和transclude有过任何关系。在工作中,我们被明确告知不要使用它(链接函数也是)。我认为这是一件好事,而Angular 2的结果表明,思考并非完全没有理由


我会按照迭代来安排所需数量的项目。在工作中,这不是一个选择,因为transclude不是一个选项。

我已经广泛使用angular。两个企业工具管理和显示大量数据,几十个交互式小部件模块,诸如此类

我从来没有和transclude有过任何关系。在工作中,我们被明确告知不要使用它(链接函数也是)。我认为这是一件好事,而Angular 2的结果表明,思考并非完全没有理由


我会按照迭代来安排所需数量的项目。在工作中,这不是一个选择,因为transclude不是一个选项。

在组件体系结构中使用
transclude
的问题是,它在视觉上打破了单一责任的概念,并扰乱了体系结构

<html>
  <navigation></navigation>
  <accordion>
    <accordion-panel></accordion-panel>
  </accordion>
  <footer></footer>
</html>

在组件体系结构中使用
transclude
的问题在于,它在视觉上打破了单一责任的概念,并扰乱了体系结构

<html>
  <navigation></navigation>
  <accordion>
    <accordion-panel></accordion-panel>
  </accordion>
  <footer></footer>
</html>

非常感谢您的回复,我有一个可能需要transclude的示例,在下面的代码中
这里我们有一个模态组件,其中可能使用了多种其他组件,在上面的示例中,我添加了公司表单,但这可能是一个联系表单。是t吗这里有一个替代方法?当然。使用一个服务。我写的一个应用程序需要带有嵌套组件的弹出窗口(我实际上不喜欢整个用户体验,但有时它是有意义的)。我刚刚创建了一个名为PopupService的东西,它被注入到popup指令控制器中。我通常认为,将数据作为应用程序的一个完全独立的层来处理,并使用服务来保存和提供数据,而不是在视图层次结构上下发送事件等等,这样更干净。我从不担心会发生什么组件的层次结构,您也不应该这样做;如果您返工UI标记,您将破坏您的代码。非常感谢您的回复,下面的代码中有一个可能需要转置的示例n it,在上面的例子中,我添加了公司表单,但这可能是一个联系人表单。有其他方法吗?当然有。使用服务。我编写的一个应用程序需要带有嵌套组件的弹出窗口(我实际上不喜欢整个用户体验,但有时它是有意义的)。我刚刚创建了一个名为PopupService的东西,它被注入到popup指令控制器中。我通常认为,将数据作为应用程序的一个完全独立的层来处理,并使用服务来保存和提供数据,而不是在视图层次结构上下发送事件等等,这样更干净。我从不担心会发生什么组件是层次结构,您也不应该这样做;如果您返工UI标记,您将破坏代码。