Sitecore 8 Speak UI - вызов Javascript кода страницы из ссылки на HTML-шаблон
Я работаю над ListControl, и в одном из столбцов есть ссылка Удалить, которую я форматирую с помощью 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.
Пожалуйста, если вы можете помочь мне с синтаксисом выше. Заранее спасибо.
2 ответа
Наконец-то удалось это сделать. Всегда знал, что так можно сделать, но не любил, как это делается.
Ссылка "Удалить" в элементе управления "Список" открывает диалоговое окно подтверждения. И если пользователь выбирает Да, то он вызывает app.onDeleteYes()
HtmlMarkup для столбца:
<a href="javascript:destinationRulePage.showDeleteDialog({{itemId}});">Delete</a>
Добавлена кнопка под названием btnDelete
с visibility
установлен в false
,
Добавлена следующая функция, выходящая за рамки приложения:
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;
}())
Это делает работу для меня. Благодарю.
Исправлено по-другому.
Я хотел показать встроенную кнопку Удалить в каждой строке списка управления. Не могу найти способ позвонить
javascript: app.showConfirmation()
Я изменил способ удаления записи:
- Есть одна кнопка Удалить за пределами ListControl.
- Включить / отключить кнопку Удалить на основе привязки ListControl.HasSelectedItem.
- По нажатию кнопки Удалить вызовите showConfirmation()
На данный момент, кажется, лучший способ. Сам Sitecore использует аналогичный подход для "запуска" пользователей. Можно найти здесь:
/sitecore/client/Applications/LicenseOptions/KickUser
Надеюсь, это поможет. Благодарю.