gpt4 book ai didi

javascript - 尝试 console.log $scope 变量时读取未定义

转载 作者:行者123 更新时间:2023-11-28 07:59:08 25 4
gpt4 key购买 nike

所以我正在尝试制作我的第一个 Angular 应用程序,到目前为止一切都运行良好,我正在尝试进行一些表单验证,这就是我到目前为止所拥有的:

angularsap.js:

var app = angular.module('PugMe', ['ngRoute', 'ngAnimate']);

app.config(function($routeProvider) {
$routeProvider
.when('/', {
controller: 'HomePage',
templateUrl: '/partial/home'
})

.when('/login', {
controller: 'Login',
templateUrl: '/partial/login'
});
});

app.controller('HomePage', function($scope) {
bgColor('white');
active = 'link1';
});

app.controller('Login', function($scope) {
bgColor('#eee');
active = 'login';
console.log($scope);

});

然后我的

index.html

<html ng-app="PugMe">
.. normal stuff ..
<div ng-view>
</div>
</html>

然后我的

登录.html

 <div class="container">
<form class="form-signin" role="form" method='post' action='/login' name="loginForm" novalidate>
<h2 class="form-signin-heading">Please sign in</h2>
<p class="alert alert-danger" ng-hide="loginForm.$valid">{{loginForm.email}}</p>
<input name='email' ng-model="email", placeholder="Email" type="email" class="form-control" placeholder="Email address" required autofocus>
<input name='password' ng-model="password", type="text" class="form-control" required value="{{loginForm.email}}">
<button class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loginForm.$invalid">Sign in</button>
</form>
</div>

我的问题是,当我这样做时,我似乎没有任何 $scope 控制

console.log($scope) 它返回一个对象(见图) <code>console.log($scope)</code> it returns an object (see picture)

但是如果我这样做 console.log($scope.loginForm); 它会返回 undefined...为什么我这么困惑。期待回复,谢谢。

编辑:忽略它们只是用于调试的随机 {{ }} 变量。

我的模板位于 .ejs 中,带有 node 后端,我不知道这有多重要,但文件保存为 .html 我添加了 app.engine('html', require('ejs').renderFile);

如果我 console.log(this) 得到一个空对象,我不知道这意味着什么,请更新。

最佳答案

Controller 加载时未加载 HTML,您可以为 ng-view 添加 onLoad 事件处理程序。

<div ng-view  onload="onLoad()">


app.controller('Login', function($scope) {
bgColor('#eee');
active = 'login';
console.log($scope);
$scope.onLoad=function(){
console.log($scope);
}

});

或者,如果您在其他事件中执行 console.log($scope); ,例如 click 按钮,那么您将获得 form > 已加载。

关于javascript - 尝试 console.log $scope 变量时读取未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25636087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com