반응형
vuej의 data-* 속성 값을 얻는 방법
버튼을 클릭하면 모달(modal)이 열리며, 모달에 표시할 내용은 해당 버튼에 전달된 데이터 속성을 기반으로 합니다.
제 단추는
<button class="btn btn-info" data-toggle="modal"
data-target="#someModal" :data-id=item.id :data-name=item.name>
Edit
</button>
제 모달에는 버튼이 몇 개 있는데, 클릭하면 데이터 속성인 파라미터와 함께 vuejs 함수를 호출해야 합니다.
내 모달 버튼은
<div class="modal-footer">
<button type="button" class="btn btn-danger"
@click.prevent="deleteItem()" data-dismiss="modal">
Delete
</button>
<button type="button" class="btn btn-warning" data-dismiss="modal">
<span class='glyphicon glyphicon-remove'></span> Close
</button>
</div>
여기에서는 파라미터를 전달해야 합니다.deleteItem()
이 파라미터는data-id
위의 버튼을 누르면 알 수 있습니다.
모달 코드
<div id="deleteModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Delete</h4>
</div>
<div class="modal-body">
<div class="deleteContent">
Are you Sure you want to delete ?
</div>
<div class="modal-footer">
<button type="button" class="btn actionBtn btn-danger"
@click.prevent="deleteItem()"
data-dismiss="modal">
Delete <span id="footer_action_button"
class='glyphicon glyphicon-trash'> </span>
</button>
<button type="button" class="btn btn-warning"
data-dismiss="modal">
<span class='glyphicon glyphicon-remove'></span> Close
</button>
</div>
</div>
</div>
</div>
</div>
추천하는 것은console.log(this)
컴포넌트 함수 내에서 버튼을 클릭하여 해당 함수를 호출하면 컴포넌트의 모든 속성을 검사할 수 있습니다.
(위의 출력 예시는 아래 첨부 이미지를 참조해 주세요.console.log
를 참조해 주세요.
이는 다른 것들과 마찬가지로, 당신이 이 시스템에 접속할 수 있다는 것을 보여줍니다.$el
DOM 요소를 보유하고 있는 속성.그 결과, 다음과 같은 코드를 추가 할 수 있는 등, 많은 가능성이 열려 있습니다.mounted
컴포넌트의 라이프 사이클 훅:
mounted() {
console.log(this);
this.myAttribute = this.$el.getAttribute('data-attribute-name');
},
이 예에서는 다음과 같은 데이터 속성에 myAttribute가 정의되어 있습니다.
// This value gets attributed during an earlier lifecycle hook.
// It will be overridden in the component's mounted() lifecycle hook.
data() {
return {
myAttribute: 'defaultvalue'
}
}
실행 시 출력 예console.log(this)
컴포넌트 내부:
다음과 같이 "item.id"을 전달할 수도 있습니다.
<button type="button" @click="deleteItem(item.id)">Delete</button>
HTML
<button type="button" @click.prevent="deleteItem()" :data-id="1" data-dismiss="modal">
Delete <span id="footer_action_button" class='glyphicon glyphicon-trash'> </span>
</button>
뷰
methods:{
deleteItem: function(){
var id = event.target.getAttribute('data-id');
console.log(id) // 1
}
}
다음은 데모 https://codepen.io/maab16/pen/jONZpVG 입니다.
간단한 옵션은 ID를 삭제 버튼에 바인딩하는 것입니다.
<button type="button" class="btn btn-danger"
@click.prevent="deleteItem(this)" :data-id=item.id data-dismiss="modal">
Delete
</button>
언급URL : https://stackoverflow.com/questions/42269260/how-to-get-the-values-of-data-attributes-in-vuejs
반응형
'sourcecode' 카테고리의 다른 글
Nuxt store getter가 작동하지 않습니다. 페이로드에 지정된 ID가 Integer + Error가 아닙니다. [vuex] 변환 핸들러 외부의 vuex 스토어 상태를 변환하지 마십시오. (0) | 2022.08.10 |
---|---|
Vue 컴포넌트를 소품 및 슬롯 기본값으로 확장하는 방법 (0) | 2022.08.10 |
다른 데이터 개체 vueJ에 데이터 개체 값을 넣는 방법s (0) | 2022.08.10 |
예외가 발생하지 않더라도 트라이캐치 블록을 사용하는 것은 비용이 많이 드나요? (0) | 2022.08.10 |
글로벌 액세스 속성을 정의할 때 vuex DRY를 설정하는 방법 (0) | 2022.08.10 |