Задать вопрос
  • Как поймать изменения в input без фокуса?

    @Alessanderrr Автор вопроса
    web-developer
    Решения не нашел, пришлось немножко нахардкодить.
    Задачу локальную решил, но в плане опыта было бы очень любопытно увидеть какое-нибудь решение такой задачи
    Ответ написан
    Комментировать
  • AngularJS: Как сделать динамическое подключение директивы?

    @Alessanderrr Автор вопроса
    web-developer
    Видимо, в моем случае возможен только "плохой вариант" - $compile.
    Как я ни пытался по-другому приладить директиву на родину, ничего не вышло.
    С помощью официальной доки сделал следующее:

    Объявление модуля
    var arm = angular.module("arm", ["jqwidgets"], function($compileProvider) {
      $compileProvider.directive('compile', function($compile) {
        return function(scope,element,attrs) {
          scope.$watch(
            function(scope){
              return scope.$eval(attrs.compile);
            },
            function (value) {
              element.html(value);
              $compile(element.contents())(scope);
            }
          );
        };
      });
    });


    В контроллере, который создает окно jqxwindow, определяем html:
    $scope.showWindow = function (pageName) {
          $rootScope.jqxWindowSettings.apply('open');
          $rootScope.html = ('<div class="' + pageName + '"></div>');
    };


    После этого у меня в модальном окне стали динамически подгружаться нужные директивы в зависимости от значения pageName.
    Думаю, что вышеприведенный код еще можно причесать для большей красоты, пока еще этим не занимался и не очень понимаю, как оно работает.. Но работает :)
    Ответ написан
    Комментировать
  • AngularJS: как вынести html модального окна в отдельный файл?

    @Alessanderrr Автор вопроса
    web-developer
    Решение нашел сам.

    Кусок файла с Ангуляром
    Было:
    arm.controller("armController", function ($scope) {
        $scope.jqxWindowSettings = {
          maxHeight: 1000, maxWidth: 1000, minHeight: 350, minWidth: 350, height: 200, width: 200,
          resizable: true, isModal: false, autoOpen: false, collapsed: true, modalOpacity: 0
        };
        // show button click handler.
        $scope.showWindow = function () {
          $scope.jqxWindowSettings.apply('open');
        };
        // Ok button click handler.
        $scope.Ok = function () {
          $scope.jqxWindowSettings.apply('close');
        };
        // cancel button click handler.
        $scope.Cancel = function () {
          $scope.jqxWindowSettings.apply('close');
        };
      });


    Стало:
    arm.controller("armController", function ($scope,$rootScope) {
        $scope.jqxWindowSettings = {
          maxHeight: 1000,
          maxWidth: 1000,
          minHeight: 350,
          minWidth: 350,
          height: 200,
          width: 200,
          resizable: true,
          isModal: false,
          autoOpen: false,
          collapsed: true,
          modalOpacity: 0
        };
        // show button click handler.
        $scope.showWindow = function () {
          $rootScope.jqxWindowSettings.apply('open');
        };
        // Ok button click handler.
        $scope.Ok = function () {
          $rootScope.jqxWindowSettings.apply('close');
        };
        // cancel button click handler.
        $scope.Cancel = function () {
          $rootScope.jqxWindowSettings.apply('close');
        };
      });
    Ответ написан
    Комментировать