需要不同逻辑的对象列表

时间:2016-08-07 16:43:43

标签: angularjs

我想显示应该具有不同UI逻辑的非常不同类型的事件列表。是的,他们有共同的属性(如名称,日期/时间,位置等),但也有一组自定义属性,可以是简单文本,预先输入项目,下拉列表等。根据具体的事件类型(将有几十个我需要以不同的方式处理用户输入。例如,在选择一个预先输入的项目时,我想清除另外两个字段等 我将使用ng-repeat显示这些事件,并根据特定的事件类型动态加载模板视图。这些视图将具有特定于业务对象的适当控制器。我仍然没有成功,但请告诉我。

  1. 与控制器内部加载类型相关的视图是一个好主意 为了这个任务?
  2. 指令代替控制器会更好吗?
  3. 有没有办法在HTML属性中动态设置控制器/指令名称?
  4. 还有其他任何建议吗?

1 个答案:

答案 0 :(得分:1)

  1. 是的,使用指令。如果你有一个基本事件定义,最好为它定义一个元素指令,并使用属性指令来扩展/自定义不同事件类型的功能。
  2. 不完全是,但您可以在列表项元素上使用ng-switch
  3. 示例:

    <li ng-repeat="event in events" ng-switch on="event.type">
        <my-event event="event" first-type ng-switch-when="type1"></my-event>
        <my-event event="event" second-type ng-switch-when="type2"></my-event>
        <my-event event="event" third-type ng-switch-when="type3"></my-event>
        <my-event event="event" ng-switch-default></my-event>
    </li>
    
    1. 在扩展指令中使用require: 'myEvent'来访问基础myEvent控制器。
    2. Demo