ng-options不填充选择选项下拉列表

时间:2017-01-06 19:27:35

标签: javascript angularjs

您好我已尝试实现几个示例中提供的更改但似乎没有效果。我确实有一个ng模型,我清楚地定义了我将收到的对象的属性。但它仍然无效。 任何帮助都会很棒。

HTML

<select chose ng-model="selected" ng-options="type as type.Name for type in ansExplanOpt">
     <option value="">-- Select an Option --</option>
</select>

控制器

$scope.selected = ansExplanOpt.data;

对象正在填充(我已选中),其所拥有的属性是Name和Id。

任何帮助都会很棒。感谢

3 个答案:

答案 0 :(得分:2)

你非常接近。只是看起来像是对Post.where("user_id NOT IN (?)", User.pluck(:id)).delete_all 值的误用。你的代码应该是

ng-model

<select chose ng-model="selectedValue" ng-options="type.Id as type.Name for type in ansExplanOpt"> </select> 将是用户选择的内容。

他们的文档也很好地分解了它:https://docs.angularjs.org/api/ng/directive/ngOptions

答案 1 :(得分:1)

这是解决方案:

ng-model是用户选择的值。

function TodoCtrl($scope) {
  $scope.ansExplanOpt = [
    {text:'learn angular', id:1},
    {text:'build an angular app', id:2}];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js"></script>
<div ng-app>
  <div ng-controller="TodoCtrl">
<select chose ng-model="select" ng-options="type as type.text for type in ansExplanOpt">
     <option value="">-- Select an Option --</option>
</select>
{{select.text}}
  <br>
    {{select}}
  </div>
</div>

答案 2 :(得分:1)

您可以定义要预选的数组中的哪个元素:

var myApp = angular.module('myApp', [])
 .controller('TestController', ['$scope', function($scope) {
  $scope.data = [{
    label: 'blah',
    value: 'blah'
  }, {
    label: 'blah1',
    value: 'blah1'
  }, {
    label: 'blah2',
    value: 'blah2'
  }];
  $scope.sel = $scope.data[0];

}]);

HTML:

<div ng-controller="TestController">
  {{sel}}
  <select ng-model="sel.value" ng-options="d.value as d.label for d in data">
  </select>
</div>

有关详细信息,请参阅jsfiddle