Angularjs 选择不是由 $scope 变量设置的

Angularjs Select not setted by $scope variable

提问人:user7370387 提问时间:3/22/2017 更新时间:3/22/2017 访问量:57

问:

我有一个非常简单的问题:

这是我在控制器中的对象:

$scope.footballeur = {'identifiant':6,'prenom':'Thierry','nom':'Chalamerto','categorie':1,'ville':'Paris','age':17,'date_embauche':'','salaire':'28'};

请注意 int 变量 categorie 。

现在在我看来,我有一个非常简单的选择,如下所示:

<div class="input-group">
    <span class="input-group-addon stdgp"></i> Catégorie</span>
    <select  ng-init="footballeur.categorie"  ng-model="footballeur.categorie" class="form-control" >
    <option  value="1">Junior</option>
    <option value="2">Confirmé</option>
</select>
</div><br>

然后,信不信由你,但选择无法由我的值设置。 它显示一个空白行,真的很烦人。

如果有人有想法,我将不胜感激,唯一有效的方法是删除 ng-model 并将其替换为 ng-value,但是,我无法保存用户选择的新值!

我真的不知道该怎么办,我尝试过ng-value而不是value,它仍然不起作用!我已经删除了ng-init,它仍然没有任何变化!我的SELECT里面甚至没有一个循环,它应该直接工作!

这是一张可怕情况的图片:

enter image description here

angularjs 选择

评论


答:

2赞 jperelli 3/22/2017 #1

新答案(对不起,我乍一看误解了你的问题)

我认为您的问题与“选定”属性有关。试试这样的方法:

<option ng-selected="footballeur.categorie == 1" value="1">Junior</option>

旧答案

像这样进行选择

<select ng-model="footballeur_selected" class="form-control">
  <option ng-repeat="(fname, fvalue) in footballeur" value="{{fvalue}}">{{fname}}</option>
</select>

评论

1赞 user7370387 3/22/2017
太棒了,你的新答案效果很好,非常感谢,我以为是自动的,但显然不是!
1赞 Ben 3/22/2017 #2

研究使用来设置选项。ng-options<select>

示例 (HTML):

<select class='form-control' 
    ng-model="mySelectedOption"
    ng-options="myOptions">
</select>

示例 (JS):

$scope.myOptions = [
    { id: "option1", name: "Option 1" },
    { id: "option2", name: "Option 2" },
    { id: "option3", name: "Option 3" }
];
0赞 Ankit Dhanna 3/22/2017 #3

它自动工作!ng-init 不是这样工作的。它很容易用于计算表达式。

即使没有 ng-init,您的代码也可以正常工作

<select  ng-model="footballeur.categorie" class="form-control" >
<option  value="1">Junior</option>
<option value="2">Confirmé</option>
</select>

在此处查看实现