새로 렌더링 된 템플릿에 시맨틱 UI를 적용해야하는데 라우터에서 렌더링 된 HTML을 얻는 방법을 모릅니다. 내 코드는 다음과 같습니다.
Router.route('/', {
name: 'home',
where: 'client',
action: function () {
this.render('home');
},
onAfterAction: function () {
console.log( $('#homeSidebar') );
}
});
기본적으로 $('#homeSidebar')
사이드 바 요소를 반환해야하지만 아직 HTML을 사용할 수 없으므로 아무것도 반환하지 않습니다. 지금까지 유일한 해결책은 다음과 같이 기능을 변경하는 것이 었습니다.
onAfterAction: function () {
setTimeout(function () {
$('#homeSidebarToggle').on('click', function () {
$('#homeSidebar').sidebar('toggle');
});
}, 200);
}
깨끗하지도 안전하지도 않습니다. HTML을 사용할 수있게되는 즉시 함수를 어떻게 실행할 수 있습니까?
onRendered
템플릿에 콜백을 사용해야합니다 . Meteor는 helpers, events and callbacks
DOM 조작을 위해 템플릿 을 사용합니다. Iron Router는 라우팅 전용입니다)
귀하의 client / view.html :
<template name="home">
<div id="homeSidebar">
</div>
</template>
귀하의 client / view.js :
Template.home.onRendered(function () {
console.log($('#homeSidebar'));
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다