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

Html AngularJs-选择标记不在选择框中显示所选值,html,angularjs,drop-down-menu,Html,Angularjs,Drop Down Menu,我有一个下拉列表,它使用带有以下代码的ng选项从AngularJs获取值: <select ng-model="selectedShelf" ng-change="shelfChangedValue(selectedShelf)" ng-options="shelf as shelf.name for shelf in shelfs"> </select> <p>Selected shelf: {{selectedShelfN

我有一个下拉列表,它使用带有以下代码的ng选项从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>
问题是,当我选择其中一个值时,该值不会显示在框中,下拉框仍然为空,显示所选值的唯一原因是使用selected shelf:{selectedShelfName}

取而代之的是,第二个select可以正常工作

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

我不知道是什么问题

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

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

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

我猜你没看懂我的问题!问题不在于标签,问题在于下拉列表,当我选择一个选项时,下拉列表框仍然为空
<select ng-model="selectedShelf"
        ng-change="shelfChangedValue(selectedShelf)"
        ng-options="shelf.id as shelf.name for shelf in shelfs">
</select>
$scope.shelfChangedValue = function(item) {
     $scope.selectedShelfName = item.name;
     /* Other treatments you add in your code */
     $scope.selectedModel = "";
     $scope.selectedModelName = "";
     $scope.disabled = false;
}