使用$scope控制器来清空数据
AngularJs Empty data with $scope controller
我已经为此挣扎了好几天了,我看不出哪里错了。事情是我已经设置了一个带有路由和控制器的angularjs web,但控制器在视图中显示的数据是空的,但在控制台中,我可以通过console.log($scope)看到$scope输出的正确数据。下面是代码
index . html
<html>
<head>
<link rel="stylesheet" type="text/css" href="http://getbootstrap.com/dist/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-md5/angular-md5.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
/script><sctipt src="http://getbootstrap.com/dist/js/bootstrap.min.js">
/sctipt><script src="js/main.js"></script>
</head>
<body ng-app='app'>
<div ng-view></div>
</body>
</html>
login.html
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="wrap">
<p class="form-title">
{{signin}}</p>
<form class="login">
<input type="text" ng-placeholder="{{user}}" required/>
<input type="password" ng-placeholder="{{password}}" required/>
<input type="submit" value="{{signin}}" class="btn btn-success btn-sm" />
<div class="remember-forgot">
<div class="row">
<div class="col-md-5">
<div class="checkbox">
<label>
<input type="checkbox" />
{{rememberme}}
</label>
</div>
</div>
<div class="col-md-7 forgot-pass-content">
<a href="javascription:void(0)" class="forgot-pass">{{forgotpassword}}}</a>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
main.js
var app=angular.module('app',['ngRoute']);
app.config(['$locationProvider','$routeProvider',function ($locationProvider,$routeProvider){
$routeProvider.
when('/login',{
templateUrl:'html/login.html',
controller:'loginController'
}).
when('/home',{
templateUrl:'html/home.html',
controller:'homeController'
}).
otherwise({
redirectTo:'/login'
});
}]);
app.run(function($rootScope){
$rootScope.urlapi='http://freecalendar.desirnet.com/api/api.php';
});
app.controller('loginController',function($scope,$rootScope,$location){
$scope={
'singin':'Iniciar sesión',
'user':'Usuario',
'password':'Contraseña',
'rememberme':'Recuérdame',
'forgotpassword':'Recordar contraseña'
};
console.log($scope);
$scope.login=function(){
var data=$.param({
'user':$scope.txtuser,
'password':$scope.txtpassword
});
$http.post($rootScope.urlapi,data)
.then(function(response){
response=response.data;
console.log(response);
if(response.error!=undefined){
$scope.errorlogin="El usuario y/o contraseña no son correctos";
} else {
$location.path('/home')
}
});
}
});
app.controller('homeController',function($scope,$rootScope,$location){
});
我真的不知道我做错了什么,我学了很多路由教程,但是什么都没有。
在控制台中没有错误,只有$scope输出
下列代码行的排版错误:
/sctipt>
你正在给loginController函数中的$scope参数赋一个新值
$scope={
'singin':'Iniciar sesión',
'user':'Usuario',
'password':'Contraseña',
'rememberme':'Recuérdame',
'forgotpassword':'Recordar contraseña'
};
你需要明白,在那之后,你就失去了指向Angular正在使用的实际作用域的链接。Angular根本无法知道你在控制器中的意图。
下面这段代码可以实现这个功能:
Object.assign($scope, {
'singin':'Iniciar sesión',
'user':'Usuario',
'password':'Contraseña',
'rememberme':'Recuérdame',
'forgotpassword':'Recordar contraseña'
});
请注意,它只是在$scope对象中添加了一些属性,因此Angular可以完美地将控制器的更改反映到视图中。
相关文章:
- 如何在可分组的剑道网格中设置空数据文本
- GCM Chrome:空数据响应
- 函数触发时清空数组
- 清空$_GET和$_POST,表单使用form.submit()
- 在 javascript 事件单击后清空输入
- 清空并附加元素的扩展高度
- 处理谷歌图表上的空数据
- 无法在提交之间清空数组
- 输入字段在 jQuery 的 slideUp()/slideDown() 上清空
- 生成时间戳日期|Javascript范围内的空数据
- 提交按钮将清空输入的值
- 清空表中的所有字段
- javascript清空一个数组并进行验证
- 从DOM中清空一系列元素的最快方法是什么
- 清空数组并通过数据绑定提出更改
- 使用$scope控制器来清空数据
- 清空复选框标签和存储在数据库中的数据
- 在收到错误数据后清空剑道UI中的网格
- 点击后退按钮清除/清空表单数据
- Angularjs在填充数据之前清空数组