我有一个看似常见的问题,但我在网上找不到任何关于如何实现我想做的事情。
我有一个搜索表单,其中包含一个公共控制器的多个实例,用于在键入时执行预先输入/自动完成搜索。每个控制器配置有不同的参数,以使用不同的标准进行查找。需要将查找结果分配给父属性,以根据输入的条件执行搜索。例如:
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?
非常感谢任何帮助。
答案 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" />'
};
});