码:

    (function () {

var itemCtx = {};
itemCtx.Templates = {};

itemCtx.Templates.Header = “<div><b>Announcements</b></div><table>”; <---syntax error here?
itemCtx.Templates.Item = ItemOverrideFun;
itemCtx.Templates.Footer = “</table>”; <---syntax error here?

itemCtx.BaseViewID = 1;
itemCtx.ListTemplateType = 104;

SPClientTemplates.TemplateManager.RegisterTemplateOverrides(itemCtx);

})();

function ItemOverrideFun(ctx) {

var _announcementTitle = ctx.CurrentItem.Title;

var _announcementDesc = ctx.CurrentItem.Body;

var _announcementID = ctx.CurrentItem.ID;

return “<tr><td><p><b>” + _announcementTitle + “</b></p>” + _announcementDesc +”<a href=’/Lists/Company%20Announcements/DispForm.aspx?ID=’+ _announcementID +’> Read More…</a></td></tr>”; <---syntax error here?
}


调用此代码后,Chrome控制台会提示存在无效或意外的令牌语法错误。

该错误显示在带有双引号的行上,并且在Chrome控制台中,双引号实际上已被替换为看起来像带有问号的菱形的图标。

到目前为止,我已经尝试用单引号将它们交换并将双引号括在单引号中,但都没有用。

谢谢。

最佳答案

拉尔提出了一个很好的观点。我已经将其固定在下方。

这里:

 (function () {

var itemCtx = {};
itemCtx.Templates = {};

itemCtx.Templates.Header = "<div><b>Announcements</b></div><table>";
itemCtx.Templates.Item = ItemOverrideFun;
itemCtx.Templates.Footer = "</table>";

itemCtx.BaseViewID = 1;
itemCtx.ListTemplateType = 104;

SPClientTemplates.TemplateManager.RegisterTemplateOverrides(itemCtx);

})();

function ItemOverrideFun(ctx) {

var _announcementTitle = ctx.CurrentItem.Title;

var _announcementDesc = ctx.CurrentItem.Body;

var _announcementID = ctx.CurrentItem.ID;

return "<tr><td><p><b>" + _announcementTitle + "</b></p>" + _announcementDesc +"<a href='/Lists/Company%20Announcements/DispForm.aspx?ID=" _announcementID +"'> Read More…</a></td></tr>";


这是问题所在:

”<a href=’/Lists/Company%20Announcements/DispForm.aspx?ID=’+ _announcementID +’>


您试图用单引号将字符串关闭,在连接_announcementID之前需要将双引号关闭

10-06 04:05