0
我有来自后端的国家和城市jsons。当我在城市选择一个国家时,我想在vuejs中做出选择,从那个国家选择城市。VueJS取决于另一个选择
我被困在这里,我不知道如何将城市仅限于所选的国家。
有人能给我一点帮助吗?
国家JSON
GET /语言/国家(国家列表)
{
"errorCode": 0,
"errorMessage": null,
"contries": [
{
"errorCode": 0,
"errorMessage": null,
"rid": "1",
"sortname": "AF",
"name": "Afghanistan",
"phonecode": 93,
"links": []
},
{
"errorCode": 0,
"errorMessage": null,
"rid": "2",
"sortname": "AL",
"name": "Albania",
"phonecode": 355,
"links": []
},
{
"errorCode": 0,
"errorMessage": null,
"rid": "3",
"sortname": "DZ",
"name": "Algeria",
"phonecode": 213,
"links": []
}
],
"links": []
}
城市JSON
GET /语言/国家/ 1(与ID = 1个城市的名单)
{
"errorCode": 0,
"errorMessage": null,
"cities": [
{
"errorCode": 0,
"errorMessage": null,
"rid": "33129",
"name": "Abrud",
"stateId": 2934,
"links": []
},
{
"errorCode": 0,
"errorMessage": null,
"rid": "33130",
"name": "Aiud",
"stateId": 2934,
"links": []
},
{
"errorCode": 0,
"errorMessage": null,
"rid": "33131",
"name": "Alba Iulia",
"stateId": 2934,
"links": []
}
],
"links": []
}
VueJS脚本
export default {
data() {
return {
users: {},
countries: {},
cities: {}
}
},
created() {
this.getUsers();
this.getCountries();
this.getCities();
},
methods: {
getUsers() {
this.$http.get("/user")
.then((response) => {
this.users = response.data.users;
})
},
getCountries() {
this.$http.get("/languages/countries")
.then((response) => {
this.countries = response.data.contries;
})
},
getCities() {
this.$http.get("/languages/countries/"+this.country.rid)
.then((response) => {
this.cities = response.data.cities;
})
},
},
components: {
appMenu: Menu
}
}
HTML选择
<div class="form-group">
<div class="row">
<div class="col-6 pz-rel">
<label class="eda-form-label" for="country">COUNTRY</label>
<select class="eda-form-input">
<option v-for="country in countries" :value="country.name">{{country.name}}</option>
</select>
<i class="ti-angle-down icons-for-select"></i>
</div>
<div class="col-6 pz-rel">
<label class="eda-form-label" for="city">CITY</label>
<select class="eda-form-input">
<option v-for="city in cities" :value="city.name">{{city.name}}</option>
</select>
<i class="ti-angle-down icons-for-select"></i>
</div>
</div>
</div>
因为我不知道是什么原因不工作。您的登录名非常好,但在控制台中,我在请求url中获得了未定义的id:'www.example.com/languages/countries/undefined' –
您是否还删除了此行中的this.getCities();' 'created()'生命周期钩子? –
是的,我删除了。错误是'Uncaught TypeError:无法读取'未定义'属性。不管怎样,在getCities(countryId)中,'selectedCountry.rid'中的'rid'不会出现。 –