@Lietorick

Не отправляется значение select, что скажете?

Суть такова, не отправляется select, точнее отправляется, но только в том случае, если его выбрать после заполнения всех инпутов. Пытался сам исправить - не смог, c js и в частности с angular не так давно знаком. Думаю с контроллерами намудрил.

new_ticket.html:
<div class="inmodal">
    <div class="modal-header">
        <i class="fa fa-envelope modal-icon"></i>
        <h4 class="modal-title">Новое обращение</h4>
    </div>
    <div class="modal-body">
        <div class="form-group">
            <label for="ticketSubject">Тема</label>
            <input class="form-control" type="text" ng-model="ticketData.subject" id="ticketSubject">
        </div>
        <div class="form-group" ng-controller="ServicesCtrl">
            <label for="ticketService">Услуга</label>
            <select class="form-control" ng-model="ticketData.service" id="ticketService"
                    ng-options="opt.id as opt.id for opt in services">
                <option value="">Выберите услугу</option>
            </select>
        </div>
        <div class="form-group">
            <label for="ticketMessage">Сообщение</label>
            <textarea class="form-control" id="ticketMessage" ng-model="ticketData.message"></textarea>
        </div>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-white" ng-click="cancel()">Закрыть</button>
        <button type="button" class="btn btn-primary" ng-click="send_ticket()">Отправить</button>
    </div>
</div>


function MainCtrl() {

    this.userName = 'Example user';

}

angular
    .module('example')
    .controller('MainCtrl', MainCtrl)
    .controller('ModalCtrl', ModalCtrl)
    .controller('LastNewsCtrl', function($scope, $http) {
        $http.get('/links/lastnews')
            .success(function(data) {
                $scope.news = data;
            });
    })
    .controller('ServicesCtrl', function($scope, $http) {
        $http.get('/links/services')
            .success(function(data) {
                $scope.services = data;
            });
    })
    .controller('TicketsCtrl', function($scope, $http) {
        $http.get('/links/tickets')
            .success(function(data) {
                $scope.tickets = data;
            });
    });

function ModalCtrl($scope, $modal) {

    $scope.new_ticket = function() {
        var modalInstance = $modal.open({
            templateUrl: 'views/modals/new_ticket.html',
            backdrop: 'static',
            keyboard: false,
            controller: ModalInstanceCtrl
        });
    };

    $scope.tos = function() {
        var modalInstance = $modal.open({
            templateUrl: 'views/modals/tos.html',
            backdrop: 'static',
            keyboard: false,
            controller: ModalInstanceCtrl
        });
    };

}

function ModalInstanceCtrl($scope, $modalInstance, $http) {

    $scope.ok = function() {
        $modalInstance.close();
    };

    $scope.cancel = function() {
        $modalInstance.dismiss('cancel');
    };

    $scope.send_ticket = function() {
        $http.post('http://example.com/request_test.php', $scope.ticketData)
    };

}
  • Вопрос задан
  • 2705 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Demetros
Естественно, ведь у вас в контроллере ServicesCtrl не устанавливается значение по умолчанию для $scope.ticketData.service, например так:

.controller('ServicesCtrl', function($scope, $http) {
        $http.get('/links/services')
            .success(function(data) {
                $scope.services = data;
                $scope.ticketData.service = $scope.services[0].id;
            });
    })
Ответ написан
Ваш ответ на вопрос

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

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