Шаблон столбца Kendo Ui Grid с окном кендо, всплывающим в директиве

0

Я очень новичок в Angular JS и пользовательском интерфейсе Kendo. Я пытаюсь открыть всплывающее окно из шаблона столбцов таблицы Kendo UI. Сетка находится в директиве AngularJs.

  1. Как вызвать функцию js в шаблоне: когда я определяю это как

<a href='javascript:changeShow()' class='link'>#=dataType#</a>

Я не получаю функцию. Моя функция определена в области контроллера.

var changeShow = function() {
    console.log('changeShow');
 };
  1. Как открыть всплывающее окно из этой функции?
Теги:

1 ответ

0

Я немного смущен вашим вопросом, но я предполагаю, что вы хотите вызвать функцию из своего пользовательского определения шаблона.

Например:

 "#= <a ng-click="openTheWindow()">Click to open the window</a> #"

Область действия шаблона - это не угловая область действия вашего виджета (к сожалению).

  1. Если вы поместите функцию, которую хотите вызвать из своего шаблона, в глобальное пространство, шаблон сможет ее вызвать. Очевидно, что это не доставляет желаемую инкапсуляцию и загрязняет глобальное пространство имен. Я применил закрытие утилиты в глобальной области для всех пользовательских функций форматирования, которые я хотел использовать в своих шаблонах, и указал их там.

  2. Ссылка на ваше окно Kendo добавляется в область вашей директивы, например:

    <kendo-window="myWindowReference">

    Поскольку эта ссылка находится в области действия директивы, вам нужно получить область видимости, сделав внешний запрос на угловую структуру из вашей общедоступной функции полезности. Это будет выглядеть примерно так:

    var angularScope = angular.$injector.get('nameOfDirective').scope();

    Затем откройте окно следующим образом:

    angularScope.myWindowReference.open();

    (Синтаксис выше от верхней части головы, но должен указывать на правильное направление).

Мне жаль, что я не могу предложить более чистое решение, но у Kendo Angular есть свои причуды, и я не претендую на то, чтобы понимать их все отлично. Такой подход обеспечил нам рабочее решение.

  • 0
    Спасибо за Ваш ответ. Сфера является проблемой в Angular. это помогает мне

Ещё вопросы

Сообщество Overcoder
Наверх
Меню