Всем, у меня есть еще один вопрос, связанный с Laravel / AngularJS.
В моем мини-проекте у меня есть форма, в которой пользователь может разместить вопрос в форме, но когда я нажимаю кнопку submit, запросов нет (из проверки в Google Chrome). Однако у меня интерфейс Log in, кнопка работает очень хорошо. Я использую ту же логику, ту же структуру html. И мне интересно, как я могу решить эту проблему.
Отлаживаю это 2 часа, давно гуглил. Пожалуйста, помогите мне !!
Ниже приведены коды.
// Добавить страницу с вопросом
<script type = "text/ng-template" id = "question.add.tpl">
<div ng-controller = "QuestionAddController" class = "question-add container">
<div class = "card">
<form name = "question_add_form" ng-submit = "Question.add()">
<div class = "input-group">
<label>Title</label>
<input type = "text"
name = "title"
ng-minlength = "5"
ng-maxlength = "255"
ng-model = "Question.new_question.title"
required>
</div>
<div class = "input-group">
<label>Description</label>
<textarea type = "text"
name = "desc"
ng-model = "Question.new_question.desc">
</textarea>
</div>
<div class = "input-group">
<button ng-disabled = "question_add_form.$invalid"
class = "primary"
type = "submit">Submit</button>
</div>
</form>
</div>
</div>
</script>
// Сервис и контроллер
.service('QuestionService', [
'$http',
'$state',
function ($http, $state) {
var me = this;
me.new_question = {};
me.go_add_question = function () {
console.info(1);
$state.go('question.add');
};
me.add = function () {
if (!me.new_question.title)
return;
$http.post('/api/question/add', me.new_question)
.then(function (r) {
console.info('r', r);
// if (r.data.status) {
// console.info(r.data);
// me.new_question = {};
// $state.go('home');
// }
}, function (e) {
console.info('e', e);
})
}
}
])
.controller('QuestionAddController', [
'$scope',
'QuestionService',
function (QuestionService, $scope) {
$scope.Question = QuestionService;
}
])
в QuestionService.add() в моем браузере нет "возвращаемого значения" (console.info('r', r);).
Я убеждаюсь, что маршруты и URL работают нормально, просто набрав адрес в браузере. Любое предложение будет высоко оценено!
Заранее спасибо!!!
Редактировать:
К тому же не работает кнопка Add Question. Мне нужно использовать ui-sref, чтобы перенаправить его на целевой URL, это будет причиной того, что кнопка submit не работает (например, я использую ui-sref, а не ng-submit для перенаправления)
// Добавить вопрос
<div class = "navbar clearfix">
<div class = "container">
<div class = "fl">
<div class = "navbar-item brand">somethingHere</div>
<form ng-submit = "Question.go_add_question()" id = "quick_ask" ng-controller = "QuestionAddController">
<div class = "navbar-item">
<input ng-model = "Question.new_question.title" type = "text">
</div>
<div class = "navbar-item">
<button ui-sref = "question.add" type = "submit">Add question</button> <!--ui-sref = "question.add"-->
</div>
</form>
</div>
<blablabla something not important here!!!!>
Привет, спасибо, что обратились к нам. В панели Network->XHR ничего не отображается. Я совершенно сбит с толку. Я перезапускаю свой сервер, но ничего не произошло.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваши инъекции в контроллере неправильного порядка. Должно быть
.controller('QuestionAddController', [
'$scope',
'QuestionService',
function ($scope, QuestionService) {
$scope.Question = QuestionService;
}
])
Обновлено: Сам по себе порядок не имеет значения, но порядок аргументов функции контроллера должен соответствовать порядку в массиве. Например.
Верный:
['QuestionService', 'Service2', '$scope', function(QuestionService, Service2, $scope) { ...
Неправильно:
['QuestionService', 'Service2', '$scope', function(QuestionService, scope, Service2) { ...
Причина для определения контроллера с массивом состоит в том, чтобы код мог быть минифицированный
МОЙ БОГ!!!! Оно работает!!!!! Значит, переменная типа $scope, $http всегда должна быть первым аргументом? Не могли бы вы мне немного объяснить !!!!! Большое спасибо!!!!!!!! ^ _ ^
Что отображается на вкладке сети в консоли разработчика?