JavaScript将函数推入角度';s ng重复数组为空
让我先说这不是一个重复的问题,我阅读了所有相关的问题!我的编辑功能工作得很好,我更新数组的推送功能工作得很好,我确信我从未碰过它,它只是停止了工作 我要说的是,我的HTML表单有一个ng模型,它没有拼写错误,用于帮助推送。角度代码:JavaScript将函数推入角度';s ng重复数组为空,javascript,angularjs,ng-repeat,Javascript,Angularjs,Ng Repeat,让我先说这不是一个重复的问题,我阅读了所有相关的问题!我的编辑功能工作得很好,我更新数组的推送功能工作得很好,我确信我从未碰过它,它只是停止了工作 我要说的是,我的HTML表单有一个ng模型,它没有拼写错误,用于帮助推送。角度代码: $scope.add = function(id){ $scope.people.push({ name: $scope.name,
$scope.add = function(id){
$scope.people.push({
name: $scope.name,
phone1: $scope.phone1,
phone2: $scope.phone2,
phone3: $scope.phone3,
email: $scope.email,
city: $scope.city,
state: $scope.state
});
//More code here that resets the forms input//
}
我的编辑函数工作,我的删除函数工作,就是这一个,当我按下按钮启动add()函数时,它会重置表单输入,但会将一个空白数组推到我的ng repeat列表中
我有一个表单,它有多个输入,ng模型设置为任意值;姓名,电话1。。。等等,角度代码是正确的,那么为什么这不起作用呢
<div class="centered" ng-show="addcont">
<form id="adder" name="commentForm" method="post">
<h2 class="formtitle">Add Contact</h2>
<table cellpadding="5" cellspacing="5">
<tr>
<td>Name</td>
<td>
<input class="edit" type="text" ng-model="name">
</td>
</tr>
<tr>
<td>Email</td>
<td>
<input class="edit" type="text" ng-model="email">
</td>
</tr>
<tr>
<td>Phone</td>
<td>
<input type="text" id="number" class="edit" maxlength="3" size="3" ng-model="phone1">
<input type="text" id="number" class="edit" maxlength="3" size="3" ng-model="phone2" /> -
<input type="text" id="number" class="edit" maxlength="4" size="5" ng-model="phone3" />
</td>
</tr>
<tr>
<td>City</td>
<td>
<input class="edit" type="text" ng-model="city">
</td>
</tr>
<tr>
<td>State</td>
<td>
<input class="edit" type="text" ng-model="state">
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="button" value="Save" ng-click="add(); `showAdd()">
</td>
</tr>
</table>
</form>
</div>
添加联系人
名称
电子邮件
电话
-
城市
陈述
主要更新
我使用JQuery autotab函数,一注释掉它,数组就会再次正常传入。该功能用于上面提供的表单,并自动切换到下一个输入 下面是函数:
<script>
$(document).ready(function(){
$('.edit').autotab();
});
</script>
$(文档).ready(函数(){
$('.edit').autotab();
});
尝试按值而不是按引用推送变量。我遇到的最快的解决方案是使用JSON对象。重置$scope.name时可能会出现问题。例如,它会更新数组中的值
$scope.add = function(id){
$scope.$apply(function() {
$scope.people.push({
name: JSON.parse(JSON.stringify($scope.name)),
phone1: JSON.parse(JSON.stringify($scope.phone1)),
...
});
});
//other code
}
使用Jquery和angular并非每次都适用 所以,我们应该使用自动标签的角度版本 因此,下面是使用带角度的自动制表符解决的示例 要添加的重要行是
$.autotab.selectFilterByClass=true代码>
$.autotab.selectFilterByClass=true;
var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
//$('.edit').autotab();
$.autotab.refresh();
$scope.people=[];
$scope.add=函数(id){
$scope.people.push({
名称:$scope.name,
phone1:$scope.phone1,
phone2:$scope.phone2,
phone3:$scope.phone3,
电子邮件:$scope.email,
城市:$scope.city,
state:$scope.state
});
setTimeout(函数(){
$.autotab.refresh();
}, 1);
//这里有更多重置表单输入的代码//
}
});代码>
添加联系人
{{人}
名称
电子邮件
电话
-
城市
陈述
如果你不在这一行下面重置它会发生什么?我注释掉了重置代码,没有更改无效性。你能做一个小提琴吗?你是谁重置表单?请将该代码添加到jqueryauto选项卡中
有一个角度版本引用此文件,我不这么认为!您也可以尝试其他函数来分配值,而不是javascriptYea中的引用。这对我来说仍然不起作用……事实上,奇怪的是,它使一个完全不同的函数停止工作(一个共享关闭表单的保存按钮的函数)OK奇怪。你能分享一个相关信息的链接吗?请看问题中的最新更新,我发现了问题,唐;我不知道是什么原因引起的conflict@Adrian希金斯,请核对我的答案。