Angular 单选按钮列表指令
Angular directive for radioButton list
我有一个名为的对象列表:'programs'、
每个程序都有 'Min' 和 'Max' 属性
我在此列表上重复以创建所有程序的单选按钮列表,
但是 - 如果某些数字输入不在 min 和
之间,我不想显示程序
此程序的最大值。所以我发送函数来检查程序是否启用:
<div ng-repeat="p in programs" >
<div ng-if="ifEnable(p)">
<input type="radio" >
<label for="{{program.ID}}">{{p.Name}} </label>
</div>
</div>
有效。但我想这样做 - 如果只有一个节目被启用,我想在页面的另一个地方而不是广播列表中显示这个节目。
这里是 plunker - 如果您在输入中键入“4”,您会看到列表中只显示一个节目,所以我想在另一个地方显示它而不显示广播列表
在列表上使用过滤器可以使操作更简单:
看到它在这个 plunker
中工作
过滤器:
app.filter('inRange', function() {
return function(programs, value) {
var finalList = [];
angular.forEach(programs, function(program){
if (value <= program.Max && value >= program.Min){
console.log("true !");
finalList.push(program);
}
})
return finalList;
};
});
其用途:
programs | inRange : num
现在单程序的逻辑
底部 ng-repeat
看起来像这样 :
<div ng-show="(programs | inRange : num).length > 1" ng-repeat="p in programs | inRange : num" >
<input type="radio" >
<label for="{{program.ID}}">{{p.Name}} - min: {{p.Min}} - max: {{p.Max}}</label>
</div>
我在顶部添加了另一个条件不同的:
<h1>
<div ng-show="(programs | inRange : num).length === 1" ng-repeat="p in programs | inRange : num" >
<input type="radio" >
<label for="{{program.ID}}">{{p.Name}} - min: {{p.Min}} - max: {{p.Max}}</label>
</div>
</h1>
希望对您有所帮助。
我有一个名为的对象列表:'programs'、
每个程序都有 'Min' 和 'Max' 属性
我在此列表上重复以创建所有程序的单选按钮列表,
但是 - 如果某些数字输入不在 min 和
之间,我不想显示程序此程序的最大值。所以我发送函数来检查程序是否启用:
<div ng-repeat="p in programs" >
<div ng-if="ifEnable(p)">
<input type="radio" >
<label for="{{program.ID}}">{{p.Name}} </label>
</div>
</div>
有效。但我想这样做 - 如果只有一个节目被启用,我想在页面的另一个地方而不是广播列表中显示这个节目。
这里是 plunker - 如果您在输入中键入“4”,您会看到列表中只显示一个节目,所以我想在另一个地方显示它而不显示广播列表
在列表上使用过滤器可以使操作更简单:
看到它在这个 plunker
中工作过滤器:
app.filter('inRange', function() {
return function(programs, value) {
var finalList = [];
angular.forEach(programs, function(program){
if (value <= program.Max && value >= program.Min){
console.log("true !");
finalList.push(program);
}
})
return finalList;
};
});
其用途:
programs | inRange : num
现在单程序的逻辑
底部 ng-repeat
看起来像这样 :
<div ng-show="(programs | inRange : num).length > 1" ng-repeat="p in programs | inRange : num" >
<input type="radio" >
<label for="{{program.ID}}">{{p.Name}} - min: {{p.Min}} - max: {{p.Max}}</label>
</div>
我在顶部添加了另一个条件不同的:
<h1>
<div ng-show="(programs | inRange : num).length === 1" ng-repeat="p in programs | inRange : num" >
<input type="radio" >
<label for="{{program.ID}}">{{p.Name}} - min: {{p.Min}} - max: {{p.Max}}</label>
</div>
</h1>
希望对您有所帮助。