gpt4 book ai didi

javascript - ng-submit 在 Laravel PHP 框架中不起作用

转载 作者:行者123 更新时间:2023-11-30 14:28:33 25 4
gpt4 key购买 nike

大家,我还有一个关于 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>

//服务和 Controller

.service('QuestionService', [
'$http',
'$state',
function ($http, $state) {
var me = this;
me.new_question = {};

me.go_add_question = function () {
console.log(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.log('r', r);
// if (r.data.status) {
// console.log(r.data);
// me.new_question = {};
// $state.go('home');
// }
}, function (e) {
console.log('e', e);
})
}
}
])


.controller('QuestionAddController', [
'$scope',
'QuestionService',
function (QuestionService, $scope) {
$scope.Question = QuestionService;
}
])

QuestionService.add() ,我的浏览器中没有“返回值”(console.log('r', r);)。

我通过直接在浏览器中输入地址来确保路由和 url 正常工作。任何建议将不胜感激!

提前致谢!!!

编辑:

此外,按钮 Add Question也不行。我必须使用 ui-sref让它重定向到目标网址,这就是为什么 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!!!!>

最佳答案

您在 Controller 中的注入(inject)顺序错误。应该是

.controller('QuestionAddController', [
'$scope',
'QuestionService',
function ($scope, QuestionService) {
$scope.Question = QuestionService;
}
])

编辑:排序本身并不重要,但 Controller 函数参数排序必须与数组中的排序相匹配。例如

正确:

['QuestionService', 'Service2', '$scope', function(QuestionService, Service2, $scope) { ...

不正确:

['QuestionService', 'Service2', '$scope', function(QuestionService, scope, Service2) { ...

之所以用数组定义controller是为了代码可以是minified

关于javascript - ng-submit 在 Laravel PHP 框架中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51550039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com