【问题标题】:Controller function doesn't work in Angular.js控制器功能在 Angular.js 中不起作用
【发布时间】:2016-08-20 22:08:36
【问题描述】:

大家好! 我在 Ctrl 中执行函数时遇到问题。

我尝试做一些警报,console.log 并在此处搜索答案,但没有找到完全相同的问题,只是相似。 我会感谢所有帮助我解决这个问题的人)

HTML

// ctrls.js

var gameApp = angular.module('gameApp');

var AuthorizationCtrl = gameApp.controller('AuthorizationCtrl', function($scope) {
    $scope.email = email.value;
    $scope.password = password.value;
    $scope.signUp = function() { // this function isn't executed when I hope it to be
        console.log($scope.email, $scope.password);
        gameFactory.signUp(email, password).then(function() {

        });
    };
});


// services.js
function Factory(FBMSG, $firebaseArray, $firebaseAuth) {
    var events = {},
        ref = new Firebase(FBMSG),
        games = $firebaseArray(ref),
        auth = $firebaseAuth(ref);

    events.getAllGames = function() {
        return games.$loaded();
    };


    events.signUp = function(email, password) {
        return auth.createUser({
            email: email,
            password: password
        });
    };

    return events;

}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!-- ng-view -->
<div ng-controller="AuthorizationCtrl" style="background-color: rgba(0, 0, 0, .5); width: 40%; margin:auto">
    <form>
        <div class="form-group">
            <label for="email">Email address</label>
            <input ng-model='email' type="email" class="form-control" id="email" placeholder="Email" required>
        </div>
        <div class="form-group">
            <label for="password">Password</label>
            <input ng-model="password" type="password" class="form-control" id="password" placeholder="Password" required>
        </div>
        <a href="">Forgot your password?</a>
        <div>
            <button ng-click="SignUp()">SignUp</button> <!-- Problem!!! -->
        </div>
    </form>
</div>

【问题讨论】:

  • 你从哪里得到email.value? "$scope.email = email.value"
  • 这里
  • 注册而不是注册。你的大写错误,检查 ng-click

标签: javascript jquery angularjs web frontend


【解决方案1】:

尝试用这个改变你的html,在你的ng-click中你指的是SignUp而不是signUp

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!-- ng-view -->
<div ng-controller="AuthorizationCtrl" style="background-color: rgba(0, 0, 0, .5); width: 40%; margin:auto">
    <form>
        <div class="form-group">
            <label for="email">Email address</label>
            <input ng-model='email' type="email" class="form-control" id="email" placeholder="Email" required>
        </div>
        <div class="form-group">
            <label for="password">Password</label>
            <input ng-model="password" type="password" class="form-control" id="password" placeholder="Password" required>
        </div>
        <a href="">Forgot your password?</a>
        <div>
            <button ng-click="signUp()">SignUp</button> <!-- signUp instead of SignUp!!! -->
        </div>
    </form>
</div>

【讨论】:

  • 非常感谢!这是愚蠢的错误。真丢人((我看了一个小时(((
  • 没问题! :) 请记住接受提供的答案。如果您有任何其他问题,请直接给我留言,我很乐意为您提供帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 2019-08-23
  • 1970-01-01
  • 2011-09-09
  • 2016-01-23
  • 1970-01-01
  • 2020-04-21
相关资源
最近更新 更多