Vue.js 2.0 에서 select 직렬 드 롭 다운 상자 인 스 턴 스
select 는 먼저 단일 선택 과 다 중 선택 을 구분 해 야 합 니 다.v-model 은 select 단일 선택 과 다 중 선택 에 있어 차이 가 있 습 니 다.
select 단일 선택 인 스 턴 스:
<select v-model="fruit">
<option selected value="apple"> </option>
<option value="banana"> </option>
<option value="watermelon"> </option>
</select>
<span>Selected:{{ fruit }}</span>
선택 한 option 에 value 속성 이 있 을 때 vm.selected 는 option 에 대응 하 는 value 값 입 니 다.그렇지 않 으 면 options 에 대응 하 는 text 값 입 니 다.select 다 중 선택 인 스 턴 스:
<select v-model="fruit" multiple>
<option selected value="apple"> </option>
<option value="banana"> </option>
<option value="watermelon"> </option>
</select>
<span>Selected:{{ fruit | json }}</span>
다 중 선택 한 select 에 대해 선 택 된 값 은 배열 에 들 어 갑 니 다.물론 우리 의 실제 개발 에서 대부분 은 동적 select 의 상황 이기 때문에 다음은 동적 select 의 실례 를 분석 할 것 이다.동적 선택
우 리 는 v-for,v-bind 명령 을 통 해 동적 으로 option 을 생 성 할 수 있 습 니 다.인 스 턴 스 는 다음 과 같 습 니 다.
<template>
<div id="app">
<select v-model="fruit" >
<option v-for="option in options" v-bind:value="option.value">
{{option.text}}
</option>
</select>
<span>Selected:{{ fruit | json }}</span>
</div>
</template>
<script>
new Vue({
el: '#app',
data: {
fruit: 'apple',
options: [
{ text: ' ', value: 'apple' },
{ text: ' ', value: 'banana' },
{ text: ' ', value: 'watermelon' }
]
}
});
</script>
생 성 된 코드 구 조 는 다음 과 같 습 니 다.
<select>
<option value="apple"> </option>
<option value="banana"> </option>
<option value="watermelon"> </option>
</select>
여기까지 기초 지식 을 다 정리 하고 건어물 을 만 들 기 시작 했다.저 는 직렬 select 를 쓸 때 두 가지 문 제 를 만 났 습 니 다.첫 번 째 select 선택 을 어떻게 해결 한 후에 관련 select 데 이 터 를 조회 하 느 냐 가 문제 입 니 다.문 제 는 내 가 데 이 터 를 수정 할 때 중급 연 결 된 select 데 이 터 를 어떻게 기본 으로 선택 하여 페이지 에 표시 하 느 냐 하 는 것 이다.이 두 가지 문 제 는 주로 두 번 째 문제 로 나 를 좀 괴 롭 혔 다.첫 번 째 문제 의 해결 방안 은 첫 번 째 select 에서 선택 한 데 이 터 를 감청 하 는 것 입 니 다.데이터 가 바 뀌 면 두 번 째 관련 select 를 가 져 오 라 는 요청 을 합 니 다.실례 는 다음 과 같다.
<template>
<div class="box-select-first">
<select v-model.lazy="resCity">
<option v-for="sc in scLists" v-bind:value="sc.areacode">{{sc.cityname}}</option>
</select>
</div>
<div class="box-select-second">
<select v-model="resArea">
<option v-for="sa in saLists" v-bind:value="sa.id">{{sa.areaname}}</option>
</select>
</div>
</template>
<script>
export default {
data: function () {
return {
resCity: null,
resArea: null
}
},
created: function() {
let vm = this;
vm.getSelectLists(); //
},
watch: {
resCity: 'getSecondSelectLists' //
},
methods: {
getSelectLists: function() {},
getSecondSelectLists: function(){}
}
}
</script>
두 번 째 문제 의 해결 방안 은 먼저 제 가 인 스 턴 스 를 만 든 후에 호출 되 었 습 니 다.먼저 도시 드 롭 다운 목록 을 성공 적 으로 얻 은 다음 에 상세 한 정 보 를 편집 하 는 데 이 터 를 얻 은 다음 에 연결 과 관련 된 관할 구역 목록 의 값 을 지연 시 키 는 것 입 니 다.사실은 생명 주기 내 에 도시 의 변 화 를 감청 한 후에 관할 구역 목록 데 이 터 를 먼저 가 져 오기 위해 서 입 니 다.이렇게 해야만 관할 구역 의 드 롭 다운 목록 을 연결 할 수 있 습 니 다.
<template>
<div class="box-select-first">
<select v-model.lazy="resCity">
<option v-for="sc in scLists" v-bind:value="sc.areacode">{{sc.cityname}}</option>
</select>
</div>
<div class="box-select-second">
<select v-model="resArea">
<option v-for="sa in saLists" v-bind:value="sa.id">{{sa.areaname}}</option>
</select>
</div>
</template>
<script>
export default {
data: function () {
return {
resCity: null,
resArea: null
}
},
created: function() {
let vm = this;
vm.getSelectLists(); //
},
watch: {
resCity: 'getSecondSelectLists' // ,
},
methods: {
getSelectLists: function() {
let vm = this;
if(vm.$route.name == 'modif') { //
vm.getDetails(vm.$route.params.id);
}
},
getSecondSelectLists: function(){},
getDetails:function(){
setTimeout(function() {
vm.resArea = data.id; // ,
}, 300);
}
}
}
</script>
요약:Vue.js 2.0 의 라 이 프 사이클 에서 select 의 직렬 드 롭 다운 데 이 터 를 연결 하려 면 먼저 데 이 터 를 불 러 와 야 연결 할 수 있 습 니 다.그렇지 않 으 면 레벨 드 롭 다운 값 을 성공 적 으로 귀속 할 수 없습니다.
참고 자료:
vue.js 홈 페이지
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 Vue.js 2.0 에서 select 급 연결 드 롭 다운 상자 의 인 스 턴 스 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[백견불여일타/Vue.js] 4장 - 입력 폼 데이터 가져오기v-model 데이터 입력 select 지난 장에서는 v-bind를 이용해서 HTML 태그 속성 값을 Vue로 다루는 법을 배웠습니다. 이번에는 사용자가 입력한 데이터를 Vue로 가져오는 법에 대해 다룹니다. 웹 페...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.