我有一个下拉列表,使用 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;
相反,第二个选择可以正常工作。
问题不是
标签,问题在于下拉列表,当我选择一个选项时,下拉框仍为空
我不知道是什么问题!
答案 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;
}