角度多个嵌套控制器

时间:2015-09-19 08:18:04

标签: javascript angularjs

我有一个看似常见的问题,但我在网上找不到任何关于如何实现我想做的事情。

我有一个搜索表单,其中包含一个公共控制器的多个实例,用于在键入时执行预先输入/自动完成搜索。每个控制器配置有不同的参数,以使用不同的标准进行查找。需要将查找结果分配给父属性,以根据输入的条件执行搜索。例如:

SearchController

CleanerId
TeacherId
StudentId

子控制器只是具有Id和Text值的查找控件的概念,其中需要将Id分配给适当的父属性。

理想情况下,我想将每个控制器的隐藏id字段绑定到子模型的id和父节点上的不同属性,如下所示,但我不认为这是可能的:

  

< input type =“hidden”ng-model =“child.Id,parent.CleanerId”/>

     

< input type =“hidden”ng-model =“child.Id,parent.TeacherId”/>

     

< input type =“hidden”ng-model =“child.Id,parent.StudentId”/>

子控制器必须是通用的,那么如何让父控制器绑定到子ID?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

这是为三个小部件使用指令而不是控制器的绝佳机会。

使用该指令时,将该字段作为参数传递:

<child-widget value="parent.CleanerId"></child-widget>
<child-widget value="parent.TeacherId"></child-widget>
<child-widget value="parent.StudentId"></child-widget>

在定义指令时,传递隔离范围中的值:

app.directive("childWidget", function () {
  return {
    restrict: "E",
    scope: {
      value: "="
    },
    template: '<input type="hidden" ng-model="value" />'
  };
});