我有一个帖子模板(Hogen.js)我将数据(来自Laravel 5.3的api调用)加载到其中。
我设法正确加载,编译和渲染模板和数据。
问题:
我有jquery / vanilla js脚本需要使用模板和数据,但不知何故,这个JS被渲染模板完全忽略,它不起作用(onClick,其他ajax调用等)。
我的加载/渲染JS:
var downloadUri = ConfigurationManager.AppSettings["DownloadUri"];
FtpWebRequest FTPRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://"
+ "user123" +
":" + "p@ssword" + "@" + downloadUri);
我的模板:
var $page = 1;
var source = $("#postTemplate").html();
var template = Hogan.compile(source);
$.ajax({
url: '/api/postings',
data: { page: $page} ,
type: 'POST',
success: function(data) {
var output = template.render(data);
$('.posts-container').prepend(output);
}
});
我在laravel中包含了部分需要执行的“注释”代码(fadeIn,ajaxacalls,submit等)
是否有可能,我不能用新渲染的模板或DOM执行我的JS,因为它在document.ready中不可用?
我是否需要切换模板引擎?还有其他方法让这项工作?
JSON:
<script id="postTemplate" type="text/x-hogan-template">
@{{#posts.data}}
<div class="post">
<div class="image">
<img src="@{{ imageURL }}" alt="post image" />
</div>
<div class="info">
<div class="like-count" data-like-id="@{{ id }}">
more html
</div>
</div>
@include('partials.comments')
</div>
@{{/posts.data}}
</script>
我把它剥了一下!
答案 0 :(得分:0)
你不能使用
@include('partials.comments')
你的hgan.js模板中的。霍根(几乎)没有逻辑。它用于将JSON绑定到HTML模板,它不能或不打算用于此用途。
部分只能像下面一样使用:
var partialText = "normal text but can use {{foo}} is from a variable";
var p = Hogan.compile(partialText);
var text = "This template contains a partial ({{>partial}})."
var t = Hogan.compile(text);
var s = t.render({foo: chickens}, {partial: p});
is(s, "This template contains a partial (normal text but we can use chickens. is a variable).", "partials work");
基本上{{&gt; partial}}可用于嵌套另一个预编译模板。