AngularJS如果用户在Dropdown1上选择年/月/周分辨率,则使用相应的值填充Dropdown2

时间:2015-01-30 15:58:23

标签: angularjs drop-down-menu selection

我正在尝试执行以下任务: 假设我们有一个下拉列表(Dropdown1),其中包含{年,月,周,日}选项。我们还有Dropdown2,它会根据Dropdown1中的内容进行更改。

因此,如果用户选择“年”,则Dropdown2的年份为{2013,2014,2015}。如果用户选择“月份”,则Dropdown2将包含从2013年到今天(2013年1月,2013年2月... 2015年1月)的所有月份,同样适用于所有日期。我已经成功地只在“' year”中做到了这一点。情况下..

我不想使用Datepicker,我只想简单有效地完成这项工作。 以下是它的外观:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以在分辨率列表中添加ng-change指令,并调用方法生成用于期间列表的值。

请参阅:https://docs.angularjs.org/api/ng/directive/ngChange

-

另一个选择是提前生成所有4个期间列表:

$scope.periodLists = {
    year: [...list of years...], 
    month: [...list of month+years...], 
    week: [...], 
    day: [...]
};

然后使用分辨率列表中的选项绑定您的期间下拉列表ng-model。类似的东西:

ng-model="periodList[selectedResolution]"

当用户选择不同的分辨率时,第二个列表会切换到periodList [year]或periodList [month] ...