我最近开始使用 SharePoint 中的 JSLinks,我目前正在为这里的一些东西而苦苦挣扎,到目前为止,多个小时的浏览和搜索并没有真正帮助我,所以我希望你能做到。我有一个激活了类似功能的 SharePoint 列表。我想使用 jsLink 以不同的方式呈现 LikesCount-Column(图像基本外观显示了该列的开箱即用外观和我想要的外观)
基本上我所做的就是查看基本代码,将其带到模板引擎并使用以下代码替换 SharePoint 中的模板。正如您在第二张图片中看到的那样,它渲染得很好,我放松了事件处理。因此,当我单击 Like-Button 时,不会发送 Web-Request 并且不会喜欢该项目。
如果有人可以帮助我会很高兴
(function(){
var inCtx = {
Templates: {
Fields: {
'LikesCount':{
'View' : LikesCount
}
}
},
}; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(inCtx);
function LikesCount(itemCtx){
var tmplParams = {
ElementId: itemCtx.CurrentItem.ID,
Title: '',
LikesCount : itemCtx.CurrentItem.LikesCount
};
var likedByIds = [];
$.each(itemCtx.CurrentItem.LikedBy, function(index){
likedByIds.push(parseInt(this.id));
tmplParams.Title += this.title;
if(index !== itemCtx.CurrentItem.LikedBy.length-1){
tmplParams.Title += this.title +', '
}
})
var result = '';
if(likedByIds.indexOf(itemCtx.CurrentUserId) !== -1){
tmplParams.ImageLink = '***/images/LikeButtonActive.png'
result = $('.likes-count[version="0.1"]').tmpl(tmplParams).html();
} else {
tmplParams.ImageLink = '***/images/LikeButtonInactive.png'
result = $('.likes-count[version="0.1"]').tmpl(tmplParams).html();
}
return result;
}
})();
<script class="likes-count" version="0.1" type="text/x-jQuery-tmpl">
<span id="root-likesElement-{{html ElementId}}">
<a href="javascript:;" id="likesElement-{{html ElementId}}" class="ms-secondaryCommandLink"><img class="like-button" src="{{html ImageLink}}" /></a>
<span title="{{html Title}}" class="ms-comm-likesMetadata ms-metadata">
<span class="ms-comm-likesCount ms-comm-reputationNumbers">{{html LikesCount}}</span>
</span>
</span>
</script>