Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript将函数推入角度';s ng重复数组为空_Javascript_Angularjs_Ng Repeat - Fatal编程技术网

JavaScript将函数推入角度';s ng重复数组为空

JavaScript将函数推入角度';s ng重复数组为空,javascript,angularjs,ng-repeat,Javascript,Angularjs,Ng Repeat,让我先说这不是一个重复的问题,我阅读了所有相关的问题!我的编辑功能工作得很好,我更新数组的推送功能工作得很好,我确信我从未碰过它,它只是停止了工作 我要说的是,我的HTML表单有一个ng模型,它没有拼写错误,用于帮助推送。角度代码: $scope.add = function(id){ $scope.people.push({ name: $scope.name,

让我先说这不是一个重复的问题,我阅读了所有相关的问题!我的编辑功能工作得很好,我更新数组的推送功能工作得很好,我确信我从未碰过它,它只是停止了工作

我要说的是,我的HTML表单有一个ng模型,它没有拼写错误,用于帮助推送。角度代码:

                $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>&nbsp;</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);
//这里有更多重置表单输入的代码//
}
});

添加联系人
{{人}
名称
电子邮件
电话
-
城市
陈述

如果你不在这一行下面重置它会发生什么?我注释掉了重置代码,没有更改无效性。你能做一个小提琴吗?你是谁重置表单?请将该代码添加到jquery
auto选项卡中
有一个角度版本引用此文件,我不这么认为!您也可以尝试其他函数来分配值,而不是javascriptYea中的引用。这对我来说仍然不起作用……事实上,奇怪的是,它使一个完全不同的函数停止工作(一个共享关闭表单的保存按钮的函数)OK奇怪。你能分享一个相关信息的链接吗?请看问题中的最新更新,我发现了问题,唐;我不知道是什么原因引起的conflict@Adrian希金斯,请核对我的答案。