如何访问车把模板内的元素?

时间:2016-09-18 01:20:30

标签: templates handlebars.js handlebarshelper

如何访问车把模板内的元素?我试图访问Handlebars Helper中的#element - {{id}},但我在日志中收到空。

JSBin example

print(result)
### A tibble: 3 x 3
##  countryAbr TotalCountryOccurances TotalResidentCount
##      <fctr>                  <int>              <dbl>
##1         de                      1                 50
##2         fr                      2                360
##3         us                      2                180

2 个答案:

答案 0 :(得分:0)

问题是当调用把手帮助器时我没有DOM上的元素,所以我使用了超时功能......

setTimeout(function(){
var element = document.getElementById("element-"+id);
console.log(element);
},1000);
谁知道更好的方法?

答案 1 :(得分:0)

为什么要将元素和id连接起来?

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

请改为尝试:

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

同时尝试从你的函数中删除把手。单独注册助手和函数,然后调用引用函数的辅助变量(&#34; getElementById或getElementByName&#34;)

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,""));

然后:

......你的帮助......

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