Я изучаю Ember js самостоятельно, и у меня есть этот образец кода, который отлично работает:
<script>
window.EmberApp = Ember.Application.create();
var Marcapagina = Ember.Object.extend({
convertir_en_link: function() {
return "<a href='" + this.get("url") + "'>"
+ this.get("nombre")
+ "</a>";
},
nombre: "Robert App",
url: "http://www.google.cl"
});
</script>
И в html-модуле я получаю ссылку, напечатанную следующим образом:
<script type="text/javascript">
$(document).ready(function(){
$("#here").append(marcapagina.convertir_en_link());
});
</script>
<div id="here"></div>
Мой вопрос в том, есть ли способ вызвать функцию из handlebars, например:
<body>
<script type="text/x-handlebars" data-template-name="index">
Here is where i want to print the result of the function, but
{{marcapagina.convertir_en_link()}}
Doesn't works!!!
</script>
Я хочу избавиться от этой части кода:
<script type="text/javascript">
$(document).ready(function(){
$("#here").append(marcapagina.convertir_en_link());
});
</script>
<div id="here"></div>
</body>
</html>
Ваш подход использует Ember.Objects таким образом, который не предназначен. Но конечный результат, который вы ищете, является очень простой и включенной частью Ember.
Здесь работает jsbin, который показывает "Ember Way",
Если вы только начинаете с ember, я бы очень рекомендовал пройти через учебник Todo MVC прямо здесь