Javascript 比较和插入角度JSon数据
我不明白为什么我的比较函数和插入函数不能工作。我相信其中一部分可能是因为这个函数从来没有被按钮调用过?我怎么确切地说呢?似乎警报在角度代码中不起作用 这是我的loginHandler.jsJavascript 比较和插入角度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
(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 () { /* ... */ };