将 AJAX 数据加载到 div 的优雅方式
Elegant way to load an AJAX data to a div
我的应用程序中有很多情况需要从外部加载一些数据。
我现在的做法是通过 AJAX 加载数据,将其返回到 JS 文件,然后使用 $().html()
(或类似)函数。
这会导致 javascript 代码中出现大量混乱的 html 代码。
$('.articles-container').append("<div class='item article_entree' id='"+ article.article_id +"'><input type='checkbox'></input><div class='title'>"+ article.title +"</div><br class='clear' /><div class='country'>"+ article.country_code +"</div><div class='date'>"+ article.d_published +"</div><br class='clear' /><div class='divider'></div></div>");
像这样。我尝试用 $().load() 从外部加载它,但那里有两个问题:
首先,我不知道如何制作它,所以所有信息都已正确放置。
其次 - 我正在使用 Laravel 和 Blade。 jQuery 代码位于带有 asset
的 Blade 模板中包含的外部文件中,路径变得一团糟。但我想这更容易解决。
有没有其他方法可以加载 html 而不是将它全部倒入我需要的每个 javascript 函数中?
你可以尝试在html模板文件中编写html代码,在js文件中编写js
在模板中
<div class='item article_entree' id=''>
<input type='checkbox'></input>
<div class='title'></div>
<br class='clear' />
<div class='country'></div>
<div class='date'></div>
<br class='clear' />
<div class='divider'></div>
</div>
在 JS 代码中:
$('.article_entree').prop('id', article.article_id);
$('.title').html('id', article.title);
$('.country').html('id', article.country_code);
$('.date').html('id', article.d_published);
在控制器中
public function yourFunction($id) {
$article = Article::find($id);
return view('partialview',compact('article'));
}
在partialview.blade.php
<div>
{{$article->id}}
//your html
</div>
<sript>
// load your external scirpts here
</script>
并在您的 ajax 代码中
$.ajax({
'url' : 'path/to/yourFunction',
'type' : 'GET',
'data' : {
},
'success' : function(data) {
$('.articles-container').html(data);
},
'error' : function(request,error)
{
}
});
我的应用程序中有很多情况需要从外部加载一些数据。
我现在的做法是通过 AJAX 加载数据,将其返回到 JS 文件,然后使用 $().html()
(或类似)函数。
这会导致 javascript 代码中出现大量混乱的 html 代码。
$('.articles-container').append("<div class='item article_entree' id='"+ article.article_id +"'><input type='checkbox'></input><div class='title'>"+ article.title +"</div><br class='clear' /><div class='country'>"+ article.country_code +"</div><div class='date'>"+ article.d_published +"</div><br class='clear' /><div class='divider'></div></div>");
像这样。我尝试用 $().load() 从外部加载它,但那里有两个问题:
首先,我不知道如何制作它,所以所有信息都已正确放置。
其次 - 我正在使用 Laravel 和 Blade。 jQuery 代码位于带有 asset
的 Blade 模板中包含的外部文件中,路径变得一团糟。但我想这更容易解决。
有没有其他方法可以加载 html 而不是将它全部倒入我需要的每个 javascript 函数中?
你可以尝试在html模板文件中编写html代码,在js文件中编写js
在模板中
<div class='item article_entree' id=''>
<input type='checkbox'></input>
<div class='title'></div>
<br class='clear' />
<div class='country'></div>
<div class='date'></div>
<br class='clear' />
<div class='divider'></div>
</div>
在 JS 代码中:
$('.article_entree').prop('id', article.article_id);
$('.title').html('id', article.title);
$('.country').html('id', article.country_code);
$('.date').html('id', article.d_published);
在控制器中
public function yourFunction($id) {
$article = Article::find($id);
return view('partialview',compact('article'));
}
在partialview.blade.php
<div>
{{$article->id}}
//your html
</div>
<sript>
// load your external scirpts here
</script>
并在您的 ajax 代码中
$.ajax({
'url' : 'path/to/yourFunction',
'type' : 'GET',
'data' : {
},
'success' : function(data) {
$('.articles-container').html(data);
},
'error' : function(request,error)
{
}
});