Java 填充国家/地区列表中的州下拉列表-angularjs
下面是我从JavaSpringController返回的状态列表的代码片段 下面是postman获取国家id相关状态的json结果示例Java 填充国家/地区列表中的州下拉列表-angularjs,java,angularjs,spring,rest,Java,Angularjs,Spring,Rest,下面是我从JavaSpringController返回的状态列表的代码片段 下面是postman获取国家id相关状态的json结果示例 [ { "id": 1, "name": "state1", "country": { "id": 1, "name": "MyCountry" } }, { "id": 2, "name": "
[
{
"id": 1,
"name": "state1",
"country": {
"id": 1,
"name": "MyCountry"
}
},
{
"id": 2,
"name": "state2",
"country": {
"id": 1,
"name": "MyCountry"
}
},
{
"id": 3,
"name": "state3",
"country": {
"id": 1,
"name": "MyCountry"
}
},
{
"id": 4,
"name": "state4",
"country": {
"id": 1,
"name": "MyCountry"
}
},
{
"id": 5,
"name": "state5",
"country": {
"id": 1,
"name": "MyCountry"
}
}
]
如图所示,我正在使用端点获取状态列表
var myJSON = res.data;
var states = [];
angular.forEach(myJSON, function (item)
{
states.push(item);
});
alert("500 "+ states);
状态列表永远不会显示,状态下拉列表也永远不会填充。小心模板中引用的内容 首先,您的ctrl.states(模板引用)与states(控制器引用)的对象不同 决定是否要使用控制器实例或$scope实例绑定您的ref
使用$scope,您的控制器将:
$scope.states = [] ;
angular.forEach(myJSON, function (item) {
$scope.states.push(item);
});
以及模板:
<label>State</label>
<select ng-model="state" name="state" required >
<option ng-repeat="s in states" value="{{s.name}}">{{s.name}}</option>
</select>
状态
{{s.name}}
我将ngRepeat移动到option标记,因为您不需要迭代编译多个select,而是需要为states对象的每个元素添加一个选项
也要删除这些类,因为在元素上检测到ngModel时,角度引擎将添加这些类
希望能有所帮助。请注意模板中引用的内容 首先,您的ctrl.states(模板引用)与states(控制器引用)的对象不同 决定是否要使用控制器实例或$scope实例绑定您的ref
使用$scope,您的控制器将:
$scope.states = [] ;
angular.forEach(myJSON, function (item) {
$scope.states.push(item);
});
以及模板:
<label>State</label>
<select ng-model="state" name="state" required >
<option ng-repeat="s in states" value="{{s.name}}">{{s.name}}</option>
</select>
状态
{{s.name}}
我将ngRepeat移动到option标记,因为您不需要迭代编译多个select,而是需要为states对象的每个元素添加一个选项
也要删除这些类,因为在元素上检测到ngModel时,角度引擎将添加这些类
希望能有所帮助。我认为问题在于数组引用,当然,正如之前一样,您必须将项目推送到数组中 尝试下面的代码,它会工作 注意:不要在代码段中运行代码,它不会运行bcoz angular lib,并且不会向其中添加链接
var myJSON=[
{
“id”:1,
“名称”:“state1”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:2,
“名称”:“state2”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:3,
“名称”:“state3”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:4,
“名称”:“state4”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:5,
“名称”:“state5”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
}
];
$scope.states=[];
forEach(myJSON,函数(项){
$scope.states.push(项目);
});
警报($scope.states)//警报这些值
陈述
{{s.name}}
我认为问题在于您的数组引用,当然,正如您必须将项目推入数组一样
尝试下面的代码,它会工作
注意:不要在代码段中运行代码,它不会运行bcoz angular lib,并且不会向其中添加链接
var myJSON=[
{
“id”:1,
“名称”:“state1”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:2,
“名称”:“state2”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:3,
“名称”:“state3”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:4,
“名称”:“state4”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
},
{
“id”:5,
“名称”:“state5”,
“国家”:{
“id”:1,
“名称”:“我的国家”
}
}
];
$scope.states=[];
forEach(myJSON,函数(项){
$scope.states.push(项目);
});
警报($scope.states)//警报这些值
陈述
{{s.name}}
感谢您给出答案,但状态下拉列表从未显示。所以我甚至不知道states.push是否是有效的解决方案我想你没有在模板中引用正确的对象,我正在更新答案state下拉列表是空的你是否正确连接了控制器和html?你能发布这部分代码吗?谢谢你给出答案,但状态下拉列表从未显示。所以我甚至不知道states.push是否是有效的解决方案我想你没有在模板中引用正确的对象,我正在更新答案state下拉列表是空的你是否正确连接了控制器和html?你能发布这部分代码吗?