AngularJS chained select
AngularJS chained select
<select multiple ng-model="comp" ng-options="c.name for c in companies | unique: 'company'" style="width: 100%; height: 200px; float: left; margin-bottom: 20px"></select>
<table>
<tr ng-repeat="c in comp">
<td>{{ c.id }}</td>
</tr>
</table>
<select multiple ng-model="dep" ng-options="c.name for c in departments | filter: {company_id: comp.id}" style="width: 100%; height: 200px; float: left; margin-bottom: 20px"></select>
<select multiple ng-model="pos" ng-options="c.name for c in positions | unique: 'position' | filter: {department_id: dep.id}" style="width: 100%; height: 200px; float: left"></select>
是我的代码的样子,但它只能部分工作。如果我通过ng-repeat
循环播放,当我在选择框中单击公司时,c.id
打印正常。问题是 - 它不会在我想过滤结果的其他选择框中打印出来。可能是什么原因呢?
JSFiddle: http://jsfiddle.net/9Ymvt/853/
问题是由以下事实引起的:comp
是(选定的(公司列表,而不是单个公司。虽然表工作正常(ng-repeat 遍历表(,但过滤器失败,因为comp.id
的计算结果为 undefined
。
这可以通过将我们的过滤器更改为如下来解决:
<div ng-controller="fessCntrl">
<select multiple ng-model="comp" ng-options="c.name for c in companies | unique: 'company'" style="width: 100%; height: 200px; float: left; margin-bottom: 20px"></select>
<table>
<tr ng-repeat="c in comp">
<td>{{ c.id }}</td>
</tr>
</table>
<pre>{{ comp }}</pre>
<select multiple ng-model="dep" ng-options="c.name for c in departments | filter:sameId(comp, 'company_id')" style="width: 100%; height: 200px; float: left; margin-bottom: 20px"></select>
<select multiple ng-model="pos"
ng-options="c.name for c in positions | unique: 'position' | filter:sameId(dep, 'department_id')"
style="width: 100%; height: 200px; float: left"></select>
</div>
为了使代码正常工作,必须在fessCntrl
范围内定义sameId
。
$scope.sameId = function(grouping, object_id_field_name) {
return function(object) {
var obj_id = object[object_id_field_name];
for (var i = 0; i < grouping.length; i++) {
if (grouping[i].id == obj_id)
return true;
}
return false;
}
};
相关文章:
- jquery点击函数select&取消选择
- 在html Select中添加搜索
- Jquery:未触发select事件
- 如何在PHP中使用$_POST获取Select元素值
- 无法在Ionic select中预先选择最后一个选项
- Dojo:访问dijit.form.Select中单击的项目
- X秒后刷新select元素
- 根据select选项元素将表单重定向到不同的URL
- 在select元素中显示highchart dashstyle(svg)
- jQuery动态表单显示在select选项上
- Javascript Select OnChange没有'不要第二次工作
- 更改基于它的Select OPTION's INDEX(Jquery)
- 正在获取select上的功能id
- 根据Select值添加/删除表行
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- 如何在触发事件后选择select选项
- JQuery 遍历当前 SELECT 值
- AngularJS chained select
- jQuery Chained Select TypeError: 无法读取 undefined 的属性 'fn'
- PHP MySQl Chained Select