Javascript 角网格中的动态选择元素滤波
我正在使用ng repeat对对象进行迭代,以便以角度显示,每个对象都包含一个包含对象属性的select元素 我想根据每个对象的其他属性的选定值筛选选项(这比我想象的要难解释),但问题是这些是微风实体,如果我使用传统方法,堆栈会由于微风实体的循环性质引发溢出异常 我发现Ward提供了一个很好的示例,介绍了如何创建一个更静态的函数来处理过滤,但我正在尝试使其更具动态性,并且正在努力- 在视图中,我有一个可用战斗机的列表,该列表应通过战斗机的重量等级进行过滤,因此对于ng repeat的每一场战斗,都有一个重量等级选择器和两个战斗机选择器- 尝试1-Javascript 角网格中的动态选择元素滤波,javascript,angularjs,breeze,Javascript,Angularjs,Breeze,我正在使用ng repeat对对象进行迭代,以便以角度显示,每个对象都包含一个包含对象属性的select元素 我想根据每个对象的其他属性的选定值筛选选项(这比我想象的要难解释),但问题是这些是微风实体,如果我使用传统方法,堆栈会由于微风实体的循环性质引发溢出异常 我发现Ward提供了一个很好的示例,介绍了如何创建一个更静态的函数来处理过滤,但我正在尝试使其更具动态性,并且正在努力- 在视图中,我有一个可用战斗机的列表,该列表应通过战斗机的重量等级进行过滤,因此对于ng repeat的每一场战斗,
<select
ng-model="fight.firstFighter"
ng-options="f.fullName for f in fighters | filter: fighterFilter">
</select>
<select
ng-model="fight.weightClass"
ng-options="w.fullName for w in weightClasses">
</select>
$scope.fighterFilter = function (fighter) {
var fight = ???;
return fight.weightClass ?
-1 != fighter.weightClass === fight.weightClass :
true;
};
$scope.fighterFilter=功能(战斗机){
var=???;
回击,重量级?
-1!=fighter.weightClass==fight.weightClass:
是的;
};
我尝试过不发送任何内容,如图所示,但问题是它在遍历每个可用的战斗机时只发送战斗机的值,因此我无法获得fight.weightClass的值
你知道如何了解战斗的背景和我反复提到的战士吗?还是一种更好的过滤方法
战斗机结构
- 身份证
- 名字
- 重量分类
- WeightClass(导航属性)
- 第一战斗机
- 第二战斗机
- 重量分类
- WeightClass(导航属性)
- 身份证
- 重量
- 描述
- 全名
我已经能够毫无问题地过滤s单次战斗的结果,问题是如何在ng repeat指令下的相同视图中动态处理每次战斗的结果。我无法获得“fight”和“fighter”的上下文来比较这两个实体的“weight class”值是否匹配 过滤器可以将
表达式
作为对象
,格式为{fieldName:value}
您可以使用| filter:{WeightClassId:fight.WeightClass.Id}
实现您想要的功能
<li ng-repeat="fight in fights">
<h4>{{ fight.number }}</h4>
Weight Class:
<select ng-model="fight.WeightClass" ng-options="w.Name for w in weightClasses"></select>{{ fight.WeightClass.Name }}
<br/>First Fighter
<select ng-model="fight.FirstFighterId" ng-options="f.Name for f in fighters | filter: {WeightClassId:fight.WeightClass.Id}"></select><span>{{ fight.FirstFighter.Name }}</span>
<br/>Second Fighter
<select ng-model="fight.SecondFighterId" ng-options="f.Name for f in fighters| filter: {WeightClassId:fight.WeightClass.Id}"></select><span>{{ fight.SecondFighter.Name }}</span>
</li>
{{fight.number}
重量等级:
{{fight.WeightClass.Name}
第一架战斗机
{{fight.FirstFighter.Name}
第二架战斗机
{{fight.SecondFighter.Name}
你能发布
战斗机的数据结构吗?
这不会动态工作,这是假设每页上只有一场战斗,而事实上有多场,这就是我使用ng repeat的原因。正确吗?所以在我的尝试1中,当我静态设置fihgt.weightClass时,我可以很容易地让它工作,正如我提到的,问题是无论我做什么,我都无法获得战斗的价值。我想看看,根据你的答案填充的战斗机选择列表,范围是否有变化,但我看不到战斗机是动态填充的。你能发布我的fiddle代码的更新版本吗?猜你的代码真的很难。我已经在这把小提琴上添加了基本结构——但问题显然比小提琴显示的更深入。很酷,这让我通过一点按摩找到了答案。谢谢ID只是用于演示,因为我不想编写自定义的getter和setter,如果你删除标记中的所有“ID”,那么答案是100%正确的,应该可以帮助未来的访问者找到最终答案。再次感谢。