尝试隐藏视图,但在将代码移至资产库并且仅在“页面”上具有引用时需要帮助

时间:2019-09-18 14:42:22

标签: javascript sharepoint-2013

我正在尝试自定义视图的页面,使其不显示特定视图(也就是我想从特定视图的页面中隐藏另一个视图)。理想情况下基于组成员身份。最终目标是将我所有的代码都存储在我的网站资产中,以便在其他页面/视图上重复使用。

我有删除视图的代码,如果将其放在脚本编辑器中,它将起作用。由于我试图将所有代码放入网站资产中,因此,一旦将其移到网站资产库中,然后添加引用,该代码将不再运行。

我在“站点资产”中的代码如下:(当在页面上和在脚本编辑器中时,由标签包围的同一代码也会起作用。

SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function () {
  function init() {
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
      Templates: {
        Header: function (ctx, columns) {
          var views = JSON.parse(ctx.ListSchema.ViewSelectorPivotMenuOptions);
          //display all View options except 'Create View' & 'Modify View'
          ClientPivotControl.prototype.SurfacedPivotCount = views.length; 
     views = views.filter(function (view) {
        console.log(view.DisplayText, view);
        var isMenu=view.MenuOptionType===2;
        return isMenu || view.DisplayText.indexOf('Owner') <0; // false will not be returned
      });

      ctx.ListSchema.ViewSelectorPivotMenuOptions = JSON.stringify(views);//create string defintion again
      return RenderHeaderTemplate(ctx, columns); //render default Header template
    }
  }
    });
  }
RegisterModuleInit(SPClientTemplates.Utility.ReplaceUrlTokens("~siteCollection/Style Library/hideview.js"), init);
  init();
});

我现在添加到脚本编辑器中以引用站点Assets库中的上述代码的引用是:

<script type="text/javascript" src="../SiteAssets/js-test/HideOwnerViews.js"></script>

我想使用网站资产库中的代码隐藏视图的功能,而不是直接嵌入页面中。

1 个答案:

答案 0 :(得分:0)

如果您的js库位于根网站中,则将该库引用为

import { act, fireEvent, render } from "@testing-library/react";
import * as React from "react";
import { EmailEditor, IEmailEditorProps } from "../EmailEditor"; // my wrapper around react-email-editor
import Editor from "react-email-editor";

如果您的js库托管在子网站中,则将该库引用为

<script type="text/javascript" src="/SiteAssets/js-test/HideOwnerViews.js"></script>