Javascript作用域在angular SPA应用程序中不起作用
我有一个角度SPA,Javascript作用域在angular SPA应用程序中不起作用,javascript,html,angularjs,scope,Javascript,Html,Angularjs,Scope,我有一个角度SPA,index.html包含 var app = angular.module('app', ['ngRoute']); app.config(function ($routeProvider , $locationProvider) { $routeProvider .when('/', {
index.html
包含
var app = angular.module('app', ['ngRoute']);
app.config(function ($routeProvider , $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'home.html',
controller: 'homeController'
})
.when('/login', {
templateUrl: 'login.html',
controller: 'loginController'
})
});
app.controller('homeController', function ($scope) {
$scope.message = 'Welcome';
});
app.controller('loginController', function ($scope) {
$scope.message = 'Login';
});
<div ng-view></div>
我的问题是,在login.html
文件中,它没有向警报(“嘿,sup?”)发出警报代码>,它不会提醒用户名
我猜javascript范围有问题,因为在index.html
中有一个,在login.html
中有一个
如果我做一个简单的
<button onclick="hey()"> Click </button>
function hey(){
alert("hey");
}
点击
函数hey(){
警惕(“嘿”);
}
我得到未捕获的引用错误:hey未定义
那么javascript的问题是什么?我如何解决这个问题
谢谢既然你用的是angular,那么用angular的东西做这个怎么样
app.controller('loginController', function ($scope) {
$scope.message = 'Login';
$scope.loginData = {};
$scope.hey = function(){
alert('hey '+$scope.loginData.username);
}
});
<input type="text" id="username" name="username" ng-model = "login.Data.username">
<input type="password" id="password" name="password" ng-model="loginData.password">
<button type="submit" id="login" ng-click="hey()"> Login </button>
app.controller('loginController',函数($scope){
$scope.message='Login';
$scope.loginda={};
$scope.hey=函数(){
警报('hey'+$scope.loginda.username);
}
});
登录
通过使用表单验证,在网上很容易找到基本的东西。
如果您需要向服务器发出请求,请使用google$http获取基本信息。handleButtonPress函数close-bracket丢失。在进行web开发时,请始终确保检查JavaScript控制台是否存在错误。@AravindSivam我忘了粘贴它,因此,在我的代码中有。我也在SO中修复了它。仍然没有解决我的问题您无法从FormData
对象中读取数据…当您将某个内容转换为JSON字符串时,它就是一个字符串,并且没有username
属性@昆汀,谢谢。但是,由于一个按钮刚刚被点击,它至少应该做最简单的事情,并向“alert”(“嘿,sup?”)发出警报`您是对的,但我的问题是在login.html
中,javascript无法在单击按钮后执行简单的警报。我希望在任何情况下修复我的javascript,无论我是否使用angular操作我的表单。感谢这可能是因为您的DOM尚未加载,将javascript包装为此处公认的答案:但是我警告您,如果您不了解angular的基本知识,混合使用原始js和angular不是一个好主意:)
app.controller('loginController', function ($scope) {
$scope.message = 'Login';
$scope.loginData = {};
$scope.hey = function(){
alert('hey '+$scope.loginData.username);
}
});
<input type="text" id="username" name="username" ng-model = "login.Data.username">
<input type="password" id="password" name="password" ng-model="loginData.password">
<button type="submit" id="login" ng-click="hey()"> Login </button>