AngularJS推不起作用

时间:2015-07-12 09:28:29

标签: javascript arrays angularjs angularjs-scope

我的angularJS推送选项不起作用。请问有人请告诉我哪里出错了,并解决了吗?我现在才开始学习这门语言一周。如果错误/错误是愚蠢的,请原谅。

谢谢

    <body ng-app="app" ng-controller ="Ctrl"  >

    <style>
        .alert{

            color: crimson;
            font-size: 19px;

        }
        .form{ 

            width: 72%;
            margin-left: 12%;
            border: 2px solid gold;
        }

    </style>

    <script>
                var app = angular.module("app", []);
                app.controller("Ctrl", function ($scope) {
                    $scope.main = [{"ngmail": "a.vanhala@evil.com", "pass": "thor", "cpass": "thor"}];

                    $scope.add = function ($scope) {
                        $scope.main.push($scope.sf);

                    };

                });
    </script>




    <div>    
        <div>    
            <form name="regform" class="form-horizontal" role="form" style=" margin: auto;" >
                <div class="form-group">
                    <label class="control-label  col-sm-2" for="email3">Email:</label>
                    <div class="col-sm-4">

                        <input type="email" class="form-control" placeholder="Enter email" id="email3" name="email" ng-model="sf.ngmail" required/>
                        <span class ="alert" ng-show=" regform.email.$touched && regform.email.$error.required"> Required</span>
                        <span class ="alert" ng-show=" !regform.email.$error.required && (regform.email.$touched && regform.email.$invalid)"> Invalid Email</span>
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label col-sm-2" for="pwd3">Password:</label>
                    <div class="col-sm-4">          
                        <input type="password" class="form-control" id="pwd3" placeholder="Enter password" ng-model="sf.pass" name="password" required/>
                        <span class ="alert" ng-show=" regform.password.$touched && regform.password.$error.required"> Required</span>

                    </div> 
                </div>

                <div class="form-group">
                    <label class="control-label col-sm-2" for="pwd4">Confirm password:</label>
                    <div class="col-sm-4">          
                        <input type="password" class="form-control" id="pwd3" placeholder="Enter password" ng-model="sf.cpass" name="cpassword" required/>
                        <span class ="alert" ng-show=" regform.cpassword.$touched && regform.cpassword.$error.required"> Required</span>

                    </div>
                </div>

                <div class="form-group">        
                    <div class="col-sm-offset-2 col-sm-10">
                        <div class="checkbox">
                            <label><input type="checkbox"> Remember me</label>
                        </div>
                    </div>
                </div>
                <div class="form-group">        
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="button" ng-click="add()" class="btn btn-default">Submit</button>
                    </div>
                </div>
            </form>
        </div>
    </div>    
    <br>   

    <div>

        <table border="1">
            <thead>
                <tr>
                    <th>Email</th>
                    <th>password</th>
                </tr>
            </thead>

            <tbody >
                <tr ng-repeat="m in main">

                    <td>{{m.ngmail}}</td>
                    <td>{{m.pass}}</td>
                </tr>
            </tbody>
        </table>


    </div>





</body>

3 个答案:

答案 0 :(得分:3)

当您在函数参数中使用$scope时,这会消除控制器和放大器的$scope依赖性的存在。创建了一个名为$scope的新变量。您不需要在函数中添加$scope,它将在您的函数中可用。

<强>代码

$scope.add = function () {
    $scope.main.push($scope.sf);
};

答案 1 :(得分:2)

您无需在函数中传递$ scope。

试试这个

$scope.add = function () {
    $scope.main.push($scope.sf);
};

答案 2 :(得分:1)

您是否尝试过push方法而不将范围传递给函数

$scope.add= function(){ // no scope here
      $scope.main.push($scope.sf);
 };