有没有办法生成类似以下标记的内容:
<select>
<option value="0000">00:00AM</option>
<option value="0100">01:00AM</option>
<option value="0200">02:00AM</option>
<option value="0300">03:00AM</option>
<!--rest of options omitted for brevity-->
</select>
......一直到晚上11点,
我正在使用Angular。
这样做的最佳方式是什么?
答案 0 :(得分:1)
在某些控制器中,您应该预先生成以下值:
$scope.hours = {};
//first 12 hours
$scope.hours['0000'] = '12:00AM';
for(var i = 1; i < 12; ++i) {
var hour = i < 10 ? '0' + i : i;
$scope.hours[hour + '00'] = hour + ':00AM';
}
//last 12 hours
$scope.hours['1200'] = '12:00PM';
for(var i = 1; i < 12; ++i) {
var hour = i < 10 ? '0' + i : i;
$scope.hours[i + 12 + '00'] = hour + ':00PM';
}
然后在你的模板中:
<select>
<option ng-repeat="(value, label) in hours | orderBy: value" value="{{ value }}">
{{ label }}
</option>
</select>
检查这个小提琴:http://jsfiddle.net/hspqfouq/1/
答案 1 :(得分:0)
您可以使用以下脚本:
<select id="hours">
</select>
<script>
var data="";
for (var i=0;i<12;i++)
{
d=i*1;
d1="0";
d2="00";
if (i>9) {d1="";}
data+="<option value='"+d1+d+d2+"'>"+d1+d+":"+d2+"AM</option>";
}
var s=document.getElementById("hours");
s.innerHTML=data;
</script>
您可以在此jsfiddle链接中看到实时输出