从第1页获取Array,并使用on- click (AngularJS)在第2页使用它
Get Array from Page 1 and use it on Page 2 using on-Click (AngularJS)
希望你们玩得开心。谢谢你一贯的理解。
框架:AngularJS, NodeJS
我正在设计一个登录页面。但是要比较的数据是testData.html中的一个项目数组。我想调用login.html上的数据,并将其与用户的输入进行比较。
登录表单工作正常,但没有读取数据。我尝试单独编译dataobject.html文件,但它无法运行。
我不想将这些数据存储在.json文件中。稍后我将学习如何使用MongoDB读取数据和比较请检查以下代码。
[LOGIN.HTML]<div ng-app="myApp" ng-controller="loginCtrls" style="height:auto;">
<form name="lForm">
<div class="container">
<label><b>Username</b></label>
<input class="w3-round" type="text" name="username" placeholder="Username" ng-model="username" required>
<div align="right" style="width:550px;">
<span style="color:red" ng-show="lForm.username.$dirty && lForm.username.$invalid">
<span ng-show = "lForm.username.$error.required">Username is required.</span>
</span>
</div>
<label><b>Password</b></label>
<input class="w3-round" type="password" name="password" ng-model="password" placeholder="Password" required>
<div align="right" style="width:550px;">
<span style="color:red" ng-show="lForm.password.$dirty && lForm.password.$invalid">
<span ng-show = "lForm.password.$error.required">Password is required.</span>
</span>
</div>
<div align="center">
<button class="w3-btn w3-teal w3-round" style="height:45px; width:100%; font-size:16px;" ng-disabled = "lForm.username.$dirty && lForm.username.$invalid || lForm.password.$dirty && lForm.password.$invalid" ng-click="chkData()">Click to Login</button>
</div>
<input type="checkbox" checked="checked"> Remember me
</div>
<div class="container" style="background-color:#f1f1f1; margin-top:0;">
<span>Forgot <a href="#forgotpass.html">password?</a></span>
</div>
</form>
<h4>{{result}} login attempt</h4>
</div>
<script src="js/loginCtrl.js"></script>
[LOGINCTRL.JS] // JavaScript Document
var app = angular.module('myApp', []);
app.controller('loginCtrls', function($scope, $http) {
//get the file from the dataobject.html file
$http.get("dataobject.html").then(function (response) {
//parse the array object to $scope.users
$scope.users = response.data.records;
});
//this function checks the user's input and
//compares it with the any match in object array
//the object array data has been passed into $scope.users
$scope.chkData = function(){
$scope.users = $scope.data.records;
angular.forEach($scope.users, function(value, key){
if(angular.equals(value.Username, $scope.username) && (value.Password, $scope.password)){
$scope.result = "Successful ";//msg to be displayed
}else {
$scope.result = "Unsuccessful ";//msg to be displayed
}
});
}
});
(数据OBJECT.HTML) <script src = "js/angular.min.js" type="text/javascript"></script>
<div ng-app="myApp" ng-controller="mdata">
</div>
<script>
var app = angular.module('myApp', []);
app.controller('mdata', function($scope) {
$scope.data =
{ "records":[ {"Username":"Alfreds","Password":"alfred","Session ID":"1"}, {"Username":"Ana","Password":"ana","Session ID":"2"}, {"Username":"Moreno","Password":"moreno","Session ID":"3"}] };
});
});
</script>
我建议使用服务。Angular的服务都是单例的。从一个控制器,你将数据放入服务,切换页面,从服务获取数据。注意:如果用户刷新页面,服务中的数据将丢失,因为服务(或angular)没有持久化状态。
每个人都会有自己的解决方案。我知道你是初学者,所以答案是为了帮助你掌握角。您可以将数据存储在$rootScope或通过创建本地存储服务,您可以在应用程序中的任何地方访问数据,但最佳实践是创建一些本地存储服务。
相关文章:
- AngularJS-在JSON选择器中使用变量名
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- 如何使用angularjs在iframe中嵌入来自数据库的视频链接
- 为什么AngularJS在每个摘要循环上都执行函数
- 如何使用AngularJS在点击身体内部任何位置时显示弹出窗口
- Angularjs在获得指令中的输出后,将值分配给控制器
- AngularJS在更改模型时引发更改
- 是否可以在第n个元素处重复启动ng
- Angularjs在当前行位置添加行
- angularjs在数字(html5)字段中将0转换为1
- AngularJs-在两个数组中查找关系信息
- Datatable Javascript链接在第2页不起作用
- AngularJS:在.post()之后添加事件侦听器
- AngularJS在.run中等待Resource
- AngularJS在数组中找不到值
- 使用Angularjs在两个不同页面的控制器之间共享数据
- angularjs在操作后没有刷新客户端
- Angularjs-在$resource-delete方法的回调中更新$scope的问题(thinkster.io第三章
- 从第1页获取Array,并使用on- click (AngularJS)在第2页使用它
- Angularjs:ng-model绑定在第一个AJAX请求后不起作用