Пользовательские действия окна Angular-Kendo

Я пытаюсь создать окно с пользовательским действием с помощью Angular-Kendo и столкнулся с проблемой.

При использовании кендо (минус angular) я бы добавил функциональность как описано здесь:

window.data("kendoWindow").wrapper.find(".k-i-custom").click(function(e){
    alert("Custom action button clicked");
    e.preventDefault();
});

Однако в Angular-Kendo доступ к объекту окна осуществляется с помощью $scope.windowname и доступен только после директивы kendo-window="windowname".

В настоящее время я обхожу это, связывая действия в k-on-open, например...

    var firstLoad = true;

    this.onOpenCallback = function () {

        if (firstLoad) {
            $scope.messageBodyWindow.wrapper.find(".k-i-custom").click(function (e) {
                alert("OMG");
            });
            firstLoad = false;
        }

Это решение, однако, похоже на дешевый хак. есть ли "правильный" способ добиться этого?


person jajdoo    schedule 17.08.2014    source источник
comment
Я пытаюсь найти ответ на этот вопрос, но безуспешно! Телерик хранит молчание по этому вопросу.   -  person cullimorer    schedule 04.02.2016


Ответы (1)


Вы можете обернуть директиву Angular-Kendo в пользовательскую директиву и поместить желаемую функциональность в функцию link. Это зарегистрирует вашу пользовательскую привязку один раз без какого-либо хакерства с «первым открытием логического окна».

  <div custom-kendo-window>
  </div>

Пользовательская директива содержит директиву кендо в своем шаблоне...

.directive('customKendoWindow', function(){
  return {
    template: '<div kendo-window="win" k-title="\'Window\'" k-width="600" k-height="200" k-visible="false"> <div id="customAction" style="cursor: pointer;">custom click action</div></div>',
    link: function(scope, element, attrs){
        $('#customAction').bind('click', function(){
          alert('Custom action fired!');
        })
    }
  }
})

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

person hally9k    schedule 24.09.2015