Sitecore 8 Speak UI - 从 HTMLTemplate link 调用页面代码 Javascript

Sitecore 8 Speak UI - Call Pagecode Javascript from HTMLTemplate link

我正在处理 ListControl,其中一列有 Delete link,我正在使用 HTMLTemplate 对其进行格式化,如下所示:

<a href="javascript: app.showConfirmation()" >Delete</a>

我的 Javascript 看起来如下:

define(["sitecore", function (Sitecore) {
  var DestinationRules = Sitecore.Definitions.App.extend({
      initialized: function () {
          this.processDestinationRules();
      },
      showConfirmation: function () {
          alert('here');

      },

  });

  return DestinationRules;
});

出于某种原因,我无法调用 showConfirmation()。它说是未定义的。我什至试过 Sitecore.Speak.app.showconfirmation() 但没有用。

我尽我最大的努力在网上搜索,但没有找到关于通过嵌入在 HTMLTemplate 中的控件调用函数的帮助。

我的下一步是调用 DialogWindow。

如果你能帮我解决上面的语法问题,请帮帮我。提前致谢。

以不同的方式修复它。

我想在列表控件的每一行中显示内联删除按钮。无法找到调用

的方法
javascript: app.showConfirmation()

我更改了删除记录的方式:

  • 在 ListControl 之外有一个删除按钮。
  • Enable/Disable 基于绑定的删除按钮 ListControl.HasSelectedItem.
  • 点击删除按钮,调用 showConfirmation()

目前看来是更好的方法。 Sitecore 本身对 "Kicking off" 用户使用类似的方法。可以在这里找到:

/sitecore/client/Applications/LicenseOptions/KickUser

希望对您有所帮助。谢谢

终于做到了。一直都知道可以这样做,但不喜欢这样。

列表控件中的删除 link 打开一个确认对话框 window。如果用户选择是,那么它会调用 app.onDeleteYes()

列的 HtmlMarkup:

<a href="javascript:destinationRulePage.showDeleteDialog({{itemId}});">Delete</a>

添加了一个名为 btnDelete 的按钮,其中 visibility 设置为 false

添加了以下功能,超出了 App 的范围:

var destinationRulePage = (function () {
    var self = this;
    self.showDeleteDialog = function (id) {
        $("button[data-sc-id='btnYes']").attr("data-sc-click",
            "javascript:app.onDeleteYes(" + id + ");");
        $("button[data-sc-id='btnDelete']").click();
    }
    return self;
}())

这适合我。谢谢。