@viktorulyushev

Как правильно написать код?

В общем проблема такая,у меня есть форма и при клике на отправку,на сервис должна уходить заявка с номером и именем отправившего.Но я не разбираюсь в Angular а проблема похоже именно в нем,т.к я делал подобную вещь на другой странице где верстка лежит просто в html файле,а тут моя кнопка лежит в ангуляровском коде.
; (function (ng) {

    'use strict';

    ng.module('callback', []);
})(window.angular);

; (function (ng) {

    'use strict';

    var CallbackCtrl = function ($sce, callbackService) {

        var ctrl = this, isRender = false;

        ctrl.currentForm = "main";

        ctrl.send = function () {
            callbackService.send(ctrl.name, ctrl.phone, ctrl.comment).then(function (result) {
                if (result == true) {
                    ctrl.currentForm = "final";
                    callbackService.setVisibleFooter(false);

                    $(document).trigger("module_callback");
                }
            });
        }

        ctrl.dialogOpen = function () {

            if (ctrl.currentForm == "final") {
                ctrl.currentForm = "main";
                ctrl.name = "";
                ctrl.phone = "";
                ctrl.comment = "";
                callbackService.setVisibleFooter(true);
            }

            if (isRender) {
                callbackService.dialogOpen();
            } else {
                callbackService.getParams().then(function (result) {                    
                    ctrl.modalText = $sce.trustAsHtml(result.ModalText);
                    ctrl.showCommentField = result.ShowCommentField;
                    callbackService.dialogRender(result.Title, ctrl);
                });
            }
            isRender = true;
        }
    };

    ng.module('callback')
      .controller('CallbackCtrl', CallbackCtrl);

    CallbackCtrl.$inject = ['$sce', 'callbackService'];

})(window.angular);

; (function (ng) {
    'use strict';

    ng.module('callback')
      .directive('callbackStart', ['$compile', function ($compile) {
          return {
              restrict: 'A',
              link: function (scope, element, attrs, ctrl) {
                  var callbacks = document.querySelectorAll('[data-callback]');
                  $compile(callbacks)(scope);
              }
          };
      }]);

    ng.module('callback')
      .directive('callback', function () {
          return {
              restrict: 'A',
              scope: true,
              controller: 'CallbackCtrl',
              controllerAs: 'callback',
              bindToController: true,
              link: function (scope, element, attrs, ctrl) {
                  element.on('click', function (event) {
                      event.preventDefault();
                      ctrl.dialogOpen();
                      scope.$apply();
                  });
              }
          };
      });
})(window.angular);

; (function (ng) {
    'use strict';

    var callbackService = function ($http, modalService) {
        var service = this;

        service.send = function (name, phone, comment) {

            return $http.post('callback/addcallback', { name: name, phone: phone, comment: comment, rnd: Math.random() }).then(function (response) {
                return response.data;
            });
        };

        service.getParams = function () {

            return $http.get('callback/getparams').then(function (response) {
                return response.data;
            });
        };

        service.dialogRender = function (title, parentScope) {

            var options = {
                'modalClass': 'callback-dialog',
                'isOpen': true
            };

            modalService.renderModal(
                'modalCallback',
                title,
                '<div data-ng-include="\'/modules/callback/scripts/templates/modal.html\'"></div>',
                '<input type="submit" class="btn btn-middle btn-action send_yandex" value="Отправить" data-ng-click="callback.send()" data-ng-disabled="modalCallbackForm.$invalid" />',
                options,
                { callback: parentScope });
        };

        service.dialogOpen = function () {
            modalService.open('modalCallback');
        };

        service.dialogClose = function () {
            modalService.close('modalCallback');
        };

        service.setVisibleFooter = function (visible) {
            modalService.setVisibleFooter('modalCallback', visible);
        };
    };

    ng.module('callback')
      .service('callbackService', callbackService);

    callbackService.$inject = ['$http', 'modalService'];

})(window.angular);

Вот код,внизу моя кнопка инпут,мне нужно повесить на нее событие клик и чтобы выполнялся данный код
onclick="roistatGoal.reach({name: name, phone: phone, text: "Заказ обратного звонка"});"


а так же
var name = $('.js-input-name-zvonok').val();
var phone = $('.js-input-phone-zvonok').val();

js-input-name-zvonok и js-input-phone-zvonok это названия классов для инпутов куда вводится инфа,так вот ,вставлял в разые места этого файла все равно не работает,причем если для инпута добавить просто
onclick="roistatGoal.reach();"
то запрос на сервис отправится но пустой,значит все работает,значит проблема в синтаксисе или ангуляре?

Так же пробовал делать через js
$('.send_yandex').on('click', function() {
			var name = $('.js-input-name-zvonok').val();
			var phone = $('.js-input-phone-zvonok').val();
			roistatGoal.reach({name: name, phone: phone, text: "Заказ обратного звонка"}); 
	});

никакой реакции,даже если убрать все и оставить толкьо roistatGoal.reach() все равно не отправляет,значит нужно что то делать с angular и именно в этом файле ,может у кого есть какие предположения или хотя бы что то?я уже не знаю что делать,и так и сяк пробовал.Надеюсь вы поймете мой вопрос
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 1
@viktorulyushev Автор вопроса
Нужно наверно просто передать значения из переменных
var name = $('.js-input-name-zvonok').val();
      var phone = $('.js-input-phone-zvonok').val();

в этот файл,поэтому он и не передает ничего т.к он думает что их нет,как их передать?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы