AngularJs - 选择标记不会在选择框中显示所选值

时间:2017-05-04 09:30:18

标签: html angularjs drop-down-menu

我有一个下拉列表,使用 ng-option 从AngularJs获取值,并带有以下代码:

import org.springframework.boot.autoconfigure.social.SocialProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "spring.social.google")

public class GoogleProperties extends SocialProperties{


}

这是Angularjs代码:

<select ng-model="selectedShelf"
        ng-change="shelfChangedValue(selectedShelf)"
        ng-options="shelf as shelf.name for shelf in shelfs">
</select>

<p>Selected shelf: {{selectedShelfName}}</p>

问题在于,当我选择其中一个值时,该值不会显示在框中,并且下拉框仍为空,唯一显示所选值的原因是使用 angular.forEach(shelfData, function(item) { $scope.shelfs.push({ id: item.id, name: item.name }); $scope.shelfChangedValue=function(item){ $scope.selectedShelf=""; $scope.selectedShelf=item.id; $scope.selectedShelfName=item.name; $scope.selectedModel = ""; $scope.selectedModelName=""; $scope.disabled=false; 相反,第二个选择可以正常工作。

问题不是

标签,问题在于下拉列表,当我选择一个选项时,下拉框仍为空

我不知道是什么问题!

1 个答案:

答案 0 :(得分:0)

您的selfChangeValue功能非常奇怪。我建议你采用一种更简单的方法:

选择直接选择id(而不是整个对象):

<select ng-model="selectedShelf"
        ng-change="shelfChangedValue(selectedShelf)"
        ng-options="shelf.id as shelf.name for shelf in shelfs">
</select>

因此selectedShelf包含货架ID:{{selectedShelf}}

现在shelfChangedValue功能 初始化selectedShelfName

$scope.shelfChangedValue = function(item) {
     $scope.selectedShelfName = item.name;
     /* Other treatments you add in your code */
     $scope.selectedModel = "";
     $scope.selectedModelName = "";
     $scope.disabled = false;
}