Javascript 比较和插入角度JSon数据

Javascript 比较和插入角度JSon数据,javascript,json,angularjs,Javascript,Json,Angularjs,我不明白为什么我的比较函数和插入函数不能工作。我相信其中一部分可能是因为这个函数从来没有被按钮调用过?我怎么确切地说呢?似乎警报在角度代码中不起作用 这是我的loginHandler.js (function() { var app = angular.module('loginHandler', []); app.controller('LoginController', ['$http' ,function($http){ var database = this; this.val

我不明白为什么我的比较函数和插入函数不能工作。我相信其中一部分可能是因为这个函数从来没有被按钮调用过?我怎么确切地说呢?似乎警报在角度代码中不起作用

这是我的loginHandler.js

(function() {
var app = angular.module('loginHandler', []);

app.controller('LoginController', ['$http' ,function($http){
  var database = this;
  this.validated = false;
  database.dbData = [];

      $http.get('/resources/DatabaseObject.json').success(function(data){
          database.dbData = data;
      });

  this.login = function(credentials){
      loggedInUser = credentals.username;
      validated = true;

      $http.get('/resources/DatabaseObject.json').success(function(data){
          $scope.dbData.push({"123":{"username":"meph","ip":"123","timeLastLogin":"123"}}, "session");
      });
  };

  this.checkSession = function(){
      var ip = "123456";

      if(session.ip.equals(123456)){
          return true;
      }
  };
 }]);
})();
这两种功能都不起作用。。。。不是登录或检查会话

DatabaseObject.json

[{
"users": {
    "cra": {
        "firstName": "Jn",
        "lastName": "it",
        "username": "dmph",
        "email": "ran61@yahoo.com",
        "ip": "192.168.1.1",
        "password": "1234",
        "computerName": "os",
        "prviateKey": "1D3RW12390ASLEWRQ1235"
    },
    "mus": {
        "firstName": "James",
        "lastName": "mh",
        "username": "ch",
        "email": "j61@gmail.com",
        "ip": "192.168.1.1",
        "password": "11212",
        "computerName": "ops",
        "prviateKey": "1D3RW12390ASLEWRQ1235"
    }
},
"session": {
    "123456": {
        "username": "crh",
        "ip": "123456",
        "timeLastLogin": "123456787654"
    }
}
}]
这是我的html

   <html lang="en" ng-app="gemStore">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">

<title>Basic Company Template for Bootstrap 3</title>

<!-- Bootstrap core CSS -->
<link href="css/bootstrap.css" rel="stylesheet">

<!-- Custom CSS for the 'One Page Wonder' Template -->
<link href="css/one-page-wonder.css" rel="stylesheet">

<script type="text/javascript" src="angular/angular.min.js"></script>

<script type="text/javascript" src="script/headerPanel.js"></script>
<script type="text/javascript" src="script/errorHandler.js"></script>
<script type="text/javascript" src="script/loginHandler.js"></script>
<script type="text/javascript" src="script/sessionHandler.js"></script>
</head>

<body ng-controller="NameController as name">
<div ng-controller="ErrorController as errorController">
<div ng-controller="LoginController as loginCtrl">
<nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
<div class="container" ng-controller="CredentialsController as credentials">
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="index.html">Home</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse navbar-ex1-collapse">
        <ul class="nav navbar-nav">
            <li><a class="act" href="#about">About</a>
            </li>
            <li><a href="#services">Services</a>
            </li>
            <li><a href="#contact">Tutorial</a>
            </li>
            <li><a href="#features">Features</a>
            </li>
            <li><a href="download.html" onclick="">Download</a>
            </li>
        </ul>
        <form>
            <ul class="nas navbar-na">
                <li ng-hide="loginCtrl.checkSession(loginCtrl.dbData.session)"><a>User ID:  <input ng-model="credentials.username" type="text"></a></li>
                <li ng-hide="loginCtrl.checkSession(loginCtrl.dbData.session)"><a>Password:  <input ng-model="credentials.password" type="password" onkeyup="if (event.keyCode == 13) document.getElementById('loginBtn').click()"></a></li>
                <li style="color: red;" ng-show="loginCtrl.checkSession(loginCtrl.dbData.session)"><h2>LOGGED IN AS {{credentials.username}}</h2></li>
            </ul>
            <ul class="nav navbar-nav">
                <li><a ng-click="loginCtrl.login(credentials)" method="post" novalidate type="submit" href="index.html" id="loginBtn">Login</a></li>
            </ul>
        </form>
    </div>

    <!-- /.navbar-collapse -->
</div>
<div style="color: red;" ng-repeat="login in loginCtrl.dbData">
    <h1>{{login.session}}</h1>
</div>
</nav>
</div>
<div style="color: red;" ng-repeat="errorArray in errorController.errors">
    <h1>{{errorArray.error}}</h1>
</div>
</div>


<div class="header-image">

<div class="headline">
    <div class="container">
        <h1>{{name.name}}</h1>
        <h2>The Impossible!</h2>
    </div>
</div>

</div>
</body>
</html>

Bootstrap 3的基本公司模板
切换导航
{{login.session} {{errorArray.error} {{name.name} 不可能!
我不确定提交按钮是否正常。。。。呸!很抱歉我真的不擅长这种东西!我希望有人能帮助我更好地理解它,我一直在尝试不同的事情,但没有任何效果


推送无效,因为您有
数据库.dbData
,但试图推送到
$scope.dbData
(不存在)


比较不起作用,因为您与
session.ip
(在任何地方都没有定义)进行比较。

我相信这是因为您使用的是
这个。
而不是
$scope.

另外,您没有将
$scope
传递给您的参数

app.controller('LoginController',['$http',函数($http){

应该是:

app.controller('LoginController', ['$http, $scope' ,function($http, $scope){
下面你应该使用:(而不是
这个


请提供一个正在工作(或未工作)的打孔器/小提琴这将帮助我们回答你的问题question@user3585563:你有没有碰巧看一下我的答案?看看这个例子:在你的控制台中打开它。我记录了
这个
$scope
。将所有
这个更改为
$scope.
,你会突然看到它工作起来。
这个
会被更多地用于一个服务。啊,是的,我明白了,谢谢你的信息!这很有帮助。但它仍然不起作用:(哈哈,Grrrr。你能看看我的便当吗?我知道我只是在做一些愚蠢的事情……我还是想不出来:(.@user3585563,mcpDESIGNS:注意,如果你使用
控制器作为
方法,那么在控制器中使用
这个
也是可能/合理的。在任何情况下,
这个
$scope
不一样。我确实看了你的答案,并对其进行了更改(在我的plunker中可能不会100%更新)但它实现了作用域。但我确实拿出了它,并尝试了两种方法。我尝试了$scope实现它,我尝试了database.dbData,我尝试了这个.dbData,但仍然没有任何结果。我实际上不认为这是方法本身,因为……我似乎无法获得在方法中工作的警报,因为某种原因,我的按钮没有调用该方法……(我想)@user3585563:这是一个可以同时调用两个函数的应用程序(只需解决我在回答中指出的问题即可)。很抱歉,我要告诉你,你的应用程序一团糟:)至少试着弄清楚使用
$scope
和使用
这个
+
控制器作为
语法有什么区别。太好了!现在是def调用方法了!哈哈。是的……def太乱了,老实说,我只是在学习如何真正工作。我得到了一个小模板,并开始观察事物是如何相互作用的。所以我t非常可怕,但它只是学习事物如何相互作用!:)我将研究$scope vrs,因为我对此仍然有点困惑:)。非常感谢!不知道它是否在推送数据,但至少它在调用方法:)。我至少可以调试更多!感谢您坚持让我完成它!
$scope.login = function () { /* ... */ };
$scope.checkSession = function () { /* ... */ };