如何使用来自相同源的不同值设置默认选定下拉列表

时间:2014-06-07 12:29:27

标签: angularjs

我有一个JSON数组,我在其中创建Dropdown并使用ng-model

选择默认值
$scope.repeats = [{
    'title': 'Never',
    'value': 'Never'
  }, {
    'title': 'Daily',
    'value': 'Daily'
  }, {
    'title': 'Weekdays (M-F)',
    'value': 'Weekdays'
  }, {
    'title': 'Weekly',
    'value': 'Weekly'
  }, {
    'title': 'Monthly',
    'value': 'Monthly'
  }, {
    'title': 'Yearly',
    'value': 'Yearly'
  }, {
    'title': 'Hourly',
    'value': 'Hourly'
  }, {
    'title': 'Minutely',
    'value': 'Minutely'
  }];

$scope.def_sele = $scope.repeats[0]

在视图中:

<select ng-model="def_sele" ng-options="repeat.title for repeat in repeats"></select>

从上面的代码中,默认选定的下拉列表是Daily。直到这里一切都很好。

但我正在创建一个TODO应用程序,其中每个TODO都有不同的选择(Never, Daily等...来自上面$scope.repeats

那么,如何为每个TODO设置默认值?????因为我给出的上述示例适用于每个地方并且我在每个TODO上选择Daily,但我想为每个TODO选择不同的不同,如何做到????


更新

我的代码就像:

<ul ng-repeat="todo in todos_detail">
    <select ng-model="todo.dropdown_position_index" ng-options="repeat.title for repeat in repeats"></select>
</ul>

在上面的示例中,每个todo都有不同的dropdown_position_index,因此我希望使用selected = selected下拉列表为todo.dropdown_position_index

2 个答案:

答案 0 :(得分:2)

您需要确保在<select>中选择的值与所选todo中的值对齐。

我没有看到您的代码,所以I put together a working example in jsbin

基本理念是:

<select ng-model="X" ng-options="x.A as x.B for x in Z"></select>

其中:

  • Z =您的选项集合
  • x = Z
  • 中的单个项目变量
  • x.A =选项
  • x.B =选项
  • 文本
  • X =要更新 AND 的值

只要数组Z中有一个对象x,其中属性x.A等于X,就会选中它。

...或者是一个不那么混乱的答案,check the code example。 ;)

祝你好运

答案 1 :(得分:0)

给出示例对象结构

$scope.todos = [{
   'title': 'Weekly',
   'value': 'Weekly'
}, {
  'title': 'Yearly',
  'value': 'Yearly'
}];

你可以做这样的事情

<div ng-repeat="todo in todos">
  <select ng-model="todo.value" ng-options="repeat.value as repeat.title for repeat in repeats"></select>
</div>

here an example plunker