编辑:似乎 Disqus 使用当前页面 URL 作为评论线程标识符,尽管我明确指出:
<script type="text/javascript">
var disqus_developer = 1;
var disqus_identifier = "@Model.UniqueThreadIdentifier"; <--- HERE
var disqus_shortname = 'foo';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
阅读下文了解更多详情。
Disqus 说我可以用唯一标识符识别“页面”。
现在在这个特定页面中大约有 10 个项目,我希望每个项目都有一个个人 Disqus 讨论线程。
所以这是加载的实际页面:
@foreach (var strong in Model.StrongAgainst)
{
<div class="pick">
<div class="actions">
<a href="#modalDialogue" data-toggle="modal"
id="@strong.UniqueThreadIdentifier" class="btn btn-comment">
<i class="icon-comment"></i>
999
</a>
</div>
</div>
</div>
}
这@UniqueThreadIdentifier
就是我用来让 Disqus 加载适当线程的方法。
接下来,在同一个 HTML 视图中,我有这个 Javascript 行,它使用 UniqueIdentifier 返回一个带有适当 Disqus 配置和 HTML 的 PartialView:
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$(document).on("click", "#strong-against .pick .data .actions .btn-comment", function () {
var commentUniqueVar = $(this).attr("id");
$.ajax({
url: '/Counterpicks/GetCommentThread',
data: { uniqueidentifier: commentUniqueVar },
success: function (data) {
$('#strongAgainstCommentModal').html(data);
alert("Finished loading.");
}
});
});
});
</script>
到这里为止,100% 确认正确的值被加载到 HTML 中。
这是部分视图:
<div class="modal-body">
<div id="disqus_thread">
</div>
<script type="text/javascript">
var disqus_developer = 1;
var disqus_identifier = "@Model.UniqueThreadIdentifier";
var disqus_shortname = 'foobar';
/* * * DON'T EDIT BELOW THIS LINE * * */
(function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>
Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments
powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">
Disqus</span></a>
</div>
请注意我如何设置disqus_identifier
使用具有正确值的强类型模型。
我唯一的猜测是,当声明这样的变量时,它是全局创建的吗?(我认为?)Disque javascript 库总是会使用我分配给它的第一个值。正确的?
如何将正确的标识符正确加载到 Disqus javascript 库?