【发布时间】:2014-05-29 09:10:38
【问题描述】:
我正在尝试使用月份列表制作 angularjs 选择框。
我从服务器传递月份名称列表(我使用 C#)
首先我试着像字典一样过几个月:
var months = new Dictionary<int, string>
{
{1, Strings.January}, {2, Strings.February}, {3, Strings.March},
{4, Strings.April}, {5, Strings.May}, {6, Strings.June},
{7, Strings.July}, {8, Strings.August}, {9, Strings.September},
{10, Strings.October}, {11, Strings.November}, {12, Strings.December}
};
我的选择看起来像这样:
<select class="form-control" ng-model="period.StartMonth" ng-options="value for (key, value) in model.Months track by key">
</select>
在这种情况下,选择会填充月份,但是!我这里有 2 个问题,我怀疑它们是相关的:
我的月份列表排序错误。它按键排序,就好像键是一个字符串,而不是一个整数。首先是 1 月,然后是 10 月、11 月等。
未选择任何值。我指定了“按键跟踪”,但显然因为它假设键是字符串,所以它忽略了存储在 period.StartMonth 中的整数值。当我尝试设置“按值跟踪”并设置 ng-model="period.StartMonthName" 时,该值被选中。但这不是我想要的样子。
我也尝试过几个月作为列表,但我仍然得到错误的排序。
有什么想法可以向 angularjs 解释我的键是整数并修复排序/设置所选项目吗?
【问题讨论】: