Angular.js:如何将<select>元素的ng模型初始化为ng-selected选项的值?

时间:2015-09-07 13:32:46

标签: javascript angularjs

我的选择看起来像这样: &lt; select ng-model =“model.string”&gt;      &lt; option ng-repeat =“选项中的选项”              NG-绑定-HTML = “option.name”              ng-selected =“option.name ==='选择的选项'”              NG-值= “option.value” &GT;      &LT; /选项&GT; &LT; /选择&GT; 没有办法知道哪个选项的名称是“选择选项”,我不能使用ng-options。所以这和这并不能解决我的问题。 我怎样才能将model.string作为最初选择的值的值而不是undefined或者它被初始化为什么? 编辑:plunker

2 个答案:

答案 0 :(得分:1)

使用ng-options,它会自动选择ng-model中的值。

如果这对您不起作用,请添加更多详细信息,例如您的JS代码,ng-model对象。

小提琴手或者是最好的选择。

由于您非常热衷于使用ng-repeat而不是ng-options,因此您可以通过以下方式实现目标:

在您的控制器中添加以下代码:

$scope.model={};

for(var i=0;i<$scope.options.length;i++){
  var selectedOption = $scope.options[i].selected;
  if(selectedOption != null && selectedOption == "selected"){
    $scope.model.string = $scope.options[i].name
  }
}

更新了Plunker:http://plnkr.co/edit/V6ogGyksHlAWrgtDhkMU?p=preview

答案 1 :(得分:1)

如果您不使用ng-options,则必须“自己”初始化模型,在选项集中选择值:

 $scope.getChosenOption = function()
 {
   for (var i in $scope.options)
    if ($scope.options[i].selected === 'selected')
     return $scope.options[i].name;
 };

$scope.selected = $scope.getChosenOption();

另外,我认为您在视图中使用“model.string”而不是“selected”$ scope变量进行了拼写错误。

Here是您更新的Plunker