AngularJs 范围参数未定义

AngularJs scope params undefined

我刚刚开始学习 AngularJS,我正在尝试使用简单的输入、控制器和 firebase 数据库制作这个简单的应用程序。

问题是,$scope 参数 userEmailuserPasswordSignin()[=24 中总是未定义=] 当我点击按钮时。

HTML相关代码:

<body ng-app="indexApp">
...
<div class="row" ng-controller="loginCtrl">
    <div class="hero-text-box">
        <br>
        <form>
            <p class="p2"><label for="email">email</label></p>
            <input ng-model="userEmail" id="email1" type="email"
                   name="email1" placeholder="email">
            <p class="p2"><label for="password">pasword</label></p>
            <input ng-model="userPassword" type="password" id="password"
                   name="password" placeholder="password" required>
            <a class="btn btn-full" href="#" ng-click="Signin()">הכנס</a>
        </form>

    </div>
</div>

AngularJSjavascript代码:

var app = angular.module("indexApp", ["firebase"]); // using firebase

app.controller("loginCtrl", function($scope, $firebaseArray) // AngularJS 
will auto add firebase 
{
var ref = firebase.database().ref().child("users")
// create a synchronized array
$scope.users = $firebaseArray(ref)

$scope.Signin = function()
{
    console.log($scope.userEmail) -- undefined!
    ....

这可能有帮助

HTML

<body ng-app="indexApp">
...
<div class="row" ng-controller="loginCtrl">
    <div class="hero-text-box">
        <br>
        <form>
            <p class="p2"><label for="email">email</label></p>
            <input ng-model="userdata.userEmail" id="email1" type="email"
                   name="email1" placeholder="email">
            <p class="p2"><label for="password">pasword</label></p>
            <input ng-model="userdata.userPassword" type="password" id="password"
                   name="password" placeholder="password" required>
            <a class="btn btn-full" href="#" ng-click="Signin(userdata)">הכנס</a>
        </form>

    </div>
</div>

Controller

var app = angular.module("indexApp", ["firebase"]); // using firebase

app.controller("loginCtrl", function($scope, $firebaseArray) // AngularJS 
will auto add firebase 
{
var ref = firebase.database().ref().child("users")
// create a synchronized array
$scope.users = $firebaseArray(ref)
$scope.userdata = {};

$scope.Signin = function(data){
 console.log(data) // you will get the object 
}

如果您想使用带有 angularJS 的表单,您应该遵循 angularjs 表单指南:https://docs.angularjs.org/guide/forms

在您的情况下,您需要将 signin() 函数移动到 html 形式 element.I 根据您的代码创建了一个 jsfiddlehttp://jsfiddle.net/sxwei123/ADukg/25254/

希望这对您有所帮助!