在帮助程序处获取对象值的车把,无需使用数据进行编译

Handlebars getting object value at helper, without compile with data

本文关键字:数据 编译 获取 帮助程序 取对象      更新时间:2023-09-26
    <h1>Handlebars JS Example</h1>
<script id="some-template" type="text/x-handlebars-template"> <table>
   {{helper yes}}
</script>
var source = $("#some-template").html(); 
var template = Handlebars.compile(source); 
var data = { 
    yes:'Yes'
}; 
Handlebars.registerHelper('helper', function(person) {
console.log(person);
console.log(data);
console.log(data[person]);
console.log(myFunction(person));
});
$('body').append(template(data));
function myFunction(keyname) {
  return data[keyname];
};

我尝试通过从车把获得的字符串获取数据值。为什么我尝试过的方法都不起作用?

现在我真正找到了解决方案,问题是当模板被编译时,我们可以像我的例子一样将对象放在它上面。但是我需要从 var 中获取它并按名称查找它。因此,当我使用像up这样的参数时,它仍然说找不到属性是的。我在这里发现作为参数,我们可以使用字符串。它的工作,我的代码会更干净。 js小提琴

    var source = $("#some-template").html(); 
var template = Handlebars.compile(source); 
var data = { 
    yes:'Yes'
}; 
    <h1>Handlebars JS Example</h1>
    <script id="some-template" type="text/x-handlebars-template">
       {{helper 'yes'}}
    </script>
    Handlebars.registerHelper('helper', function(person) {
    return data[person];
    });
    $('body').append(template());