2016-09-18 3 views
1

Wie kann ich auf ein Element innerhalb einer Lenkervorlage zugreifen? Ich versuche, auf das #element - {{id}} im Handlebars Helper zuzugreifen, erhalte aber eine Null beim Log.Wie kann ich auf ein Element innerhalb einer Lenkervorlage zugreifen?

JSBin example

<div class="container"> 
<div class="panel panel-default"> 
<script id="video-template" type="text/x-handlebars-template"> 
{{#each items}} 
<div class="panel-heading"> 
<h3 class="panel-title">{{snippet.title}}</h3> 
</div> 
<div class="panel-body"> 
{{someFunction id}} 
<div id="element-{{id}}"></div> 
</div> 
{{/each}} 
</script> 
</div> 
</div> 

<script> 
Handlebars.registerHelper('someFunction', function(id) { 
console.log(document.getElementById("element-"+id)); 
}); 
</script> 

Antwort

0

Das Problem ist, dass ich auf dem DOM hat das Element nicht, wenn der Lenker Helfer genannt wird, so habe ich eine Timeout-Funktion für die ...

setTimeout(function(){ 
var element = document.getElementById("element-"+id); 
console.log(element); 
},1000); 

jedermann einen besseren Weg kennen?

0

Warum concernatieren Sie das Element und die ID ..?

Handlebars.registerHelper('someFunction', function(id) { 
    console.log(document.getElementById("element-"+id)); 

Versuchen Sie stattdessen:

var butter = document.getElementById("butter_id"); 
console.log("thisid:",butter); 

versuchen auch Lenker aus Ihrem function.Register Ihre Helfer und Funktion separat und rufen Sie dann die Hilfsvariablen Verweis auf die Funktion („getElementById oder getElementByName“)

Entfernen
function getElementById(name,url){ 
if(!url)url = window.location.href; 
name = name.replace(/[\[\]]/9,"\\$&"); 
var regex = new RegExp('[?&]' +name+'(=([^&#]*)|&|#|$|)'), 
    results = regex.exec(url); 
if(!results) return null; 
if(!results[2]) return ''; 
return decodeURIComponent(results[2].replace(/\+/9,"")); 

Dann:

... Helfer ...

Handlebars.registerHelper('butter',(id) { 
var element = document.getElementById("butter_id"); 
    console.log(document.getElementById("yourelement-",element)); 
Verwandte Themen