Javascript 为什么我的表格没有';当它';它在ng的内部重复?
我正在学习AngularJS,我正在制作简单的任务管理应用程序。 应用程序正在连接到外部rest服务。我尝试使用AddTask按钮在活动(任务的容器)中呈现所有任务,但当表单处于循环中时,它不会发送任何内容 以下是我的html代码:Javascript 为什么我的表格没有';当它';它在ng的内部重复?,javascript,angularjs,rest,forms,Javascript,Angularjs,Rest,Forms,我正在学习AngularJS,我正在制作简单的任务管理应用程序。 应用程序正在连接到外部rest服务。我尝试使用AddTask按钮在活动(任务的容器)中呈现所有任务,但当表单处于循环中时,它不会发送任何内容 以下是我的html代码: <div id="task-group" ng-repeat="activity in activities | filter:query"> <p> <h2>{{activity.activity
<div id="task-group" ng-repeat="activity in activities | filter:query">
<p>
<h2>{{activity.activityName}}</h2></p>
{{activity.activityId}}
<form name="form" ng-submit="addTask()">
<input type="text" ng-model="sendTaskName">
<input type="hidden" name="{{activity.activityId}}" >
<input type="submit" class="btn-primary" value="Add task">
</form>
<ul class="task-list">
<li ng-repeat="task in activity.tasks">
<p>{{task.taskName}}</p>
</li>
</ul>
</div>
编辑:@Mickeel帮我解决问题。答案在他的回答中。再次非常感谢 您使用的是
ng repeat
,在每次迭代中,您都使用ng model
指令绑定输入
这里发生的是,在每次迭代中,都会创建一个新的范围。当您开始在输入中键入时,sendstaskname
变量在迭代范围内创建,而不是在控制器范围内创建
提交表单时,提交控制器作用域的变量,这就是为什么不发送任何内容
为了解决您的问题,我建议您为addTask
方法提供参数:
<div id="task-group" ng-repeat="activity in activities | filter:query">
<p>
<h2>{{activity.activityName}}</h2></p>
{{activity.activityId}}
<form name="form" ng-submit="addTask(activity.activityId, sendTaskName); sendTaskName = '';">
<input type="text" ng-model="sendTaskName">
<input type="submit" class="btn-primary" value="Add task">
</form>
<ul class="task-list">
<li ng-repeat="task in activity.tasks">
<p>{{task.taskName}}</p>
</li>
</ul>
</div>
下一次,使用plunkr,我将能够修复您的代码;) 您应该创建一个plunkr,再现您的问题,并将其发布到此处。您确定没有发送任何内容吗?使用浏览器开发工具网络检查实际请求。页面与API所在的端口完全相同。。8080? 还应该添加一个错误handler@charlietfi我使用的浏览器工具和参数都是空的。该页面位于api以外的其他端口上(api:8080,第6666页)
<div id="task-group" ng-repeat="activity in activities | filter:query">
<p>
<h2>{{activity.activityName}}</h2></p>
{{activity.activityId}}
<form name="form" ng-submit="addTask(activity.activityId, sendTaskName); sendTaskName = '';">
<input type="text" ng-model="sendTaskName">
<input type="submit" class="btn-primary" value="Add task">
</form>
<ul class="task-list">
<li ng-repeat="task in activity.tasks">
<p>{{task.taskName}}</p>
</li>
</ul>
</div>
$scope.addTask = function(activityId, taskName) {
$http({
method: 'POST',
url: 'http://localhost:8080/add-task',
data: {taskName: taskName, activityId: activityId}
}).success(function(){
getActivities();
})
}