何が悪いのかわかりません。トピックのみを更新しようとすると機能しますが、トピックとページリンクを更新しようとすると機能しません。すなわち。トピック テーブルが更新され、'pagelinks' が消えます。ピュアには到達できないと思いました - 2 番目のテンプレート ノードを読んでください。
ちなみに、私は彼らのコードをテストしました。最初のメッセージボックスにはすべてのノードが表示されます-「pagelinks」ノードが含まれますが、2番目のメッセージボックス-機能ではトピック行のみが表示されます。バグのように見えます。どうすればこれを解決できるか知っている人はいますか?
ps。ピュアの最新バージョンを使用しています。
ありがとう。
テストコード - pure.js 行: 189
function dataselectfn(sel) {
// ...
m = sel.split('.');
alert(m.toSource());
return function (ctxt) {
var data = ctxt.context;
if (!data) {
return '';
}
alert('in function: ' + m.toSource());
// ...
ジョンソン:
{"topics":[{"name":"foo"}],"pagelinks":[{"Page":1},{"Page":2}]}
HTML - 純粋なレンダリング前:
<table>
<tbody>
<tr>
<td class="pagelinks">
<a page="1" href="/Topics/IndexForAreas?page=1" class="p Page@page">1</a>
</td>
<td class="pagelinks">
<a page="2" href="/Topics/IndexForAreas?page=2" class="p Page@page">2</a>
</td>
</tr>
</tbody>
</table>
HTML - 純粋なレンダリング後:
<table>
<tbody>
<tr>
</tr>
</tbody>
</table>
コントローラ:
[Transaction]
public ActionResult IndexForAreas(int? page)
{
TopicService topicService = new TopicService();
PagedList<Topic> topics = topicService.GetPaged(page);
if (Request.IsAjaxRequest())
{
return Json(new {
topics = topics.Select(t => new {
name = t.Name,
}),
pagelinks = PagingHelper.AsPager(topics, 1)
});
}
return View(topics);
}
ASP.NET - ビュー:
<div class="topiccontainer">
<table>
<%
foreach (Topic topic in ViewData.Model)
{ %>
<tr class="topics">
<td>
<%= Html.ActionLink<ForumPostsController>(ec => ec.Index(topic.Name, null), topic.Name, new { @class="name viewlink@href" })%>
</td>
//bla bla...
</tr>
<%} %>
</table>
<table>
<tr>
<% Html.Pager(Model, 1, p =>
{ %>
<td class="pagelinks">
<%= Html.ActionLink<TopicsController>(c => c.IndexForAreas(p.Page), p.Page.ToString(), new { page = p.Page, @class = "Page@page" })%>
</td>
<% }); %>
</tr>
</table>
</div>
マスター ページ:
<% Html.RenderAction("IndexForAreas", "Topics", new { area = "" }); %>
<script type="text/javascript">
$.post("<%= Html.BuildUrlFromExpressionForAreas<TopicsController>(c => c.IndexForAreas(null)) %>", { page: page },
function (data) {
$(".topiccontainer").autoRender(data);
},
"json"
);
</script>