Javascript AngularJS:Can';我认不出我的控制器
由于不熟悉编码和角度,因此我对基础知识的理解可能有问题 起初我的应用程序还不错,但当我尝试在其中构建路由时,我遇到了一些错误。我觉得一开始我太雄心勃勃了,试图为我还没有构建的功能创建单独的控制器文件(新手错误)。现在,我似乎无法获得一个基本页面(homepage.html)来显示输入到文本框中的内容。它只显示{{inputs}},我相信这意味着它没有连接到控制器。我认为这也是因为我的CSS没有加载(指向CSS的链接在index.html中) 以下是我的JSLint错误: 在定义“var app=angular.module('myApp',['ngRoute'])之前使用了1'angular强> 4缺少“严格使用”声明$路由提供者 25缺少“严格使用”声明$scope.inputArry=[]; . 更多的“使用严格”信息 48不要在循环中生成函数-->很快就会改变这一点 index.htmlJavascript AngularJS:Can';我认不出我的控制器,javascript,html,angularjs,Javascript,Html,Angularjs,由于不熟悉编码和角度,因此我对基础知识的理解可能有问题 起初我的应用程序还不错,但当我尝试在其中构建路由时,我遇到了一些错误。我觉得一开始我太雄心勃勃了,试图为我还没有构建的功能创建单独的控制器文件(新手错误)。现在,我似乎无法获得一个基本页面(homepage.html)来显示输入到文本框中的内容。它只显示{{inputs}},我相信这意味着它没有连接到控制器。我认为这也是因为我的CSS没有加载(指向CSS的链接在index.html中) 以下是我的JSLint错误: 在定义“var app=
尼克试验
您的控制器应该是这样的
mainController.js:
app.controller('mainController', ['$scope', function ($scope) {
$scope.inputArray = [];
$scope.stuffToShow = "";
$scope.addInput = function () {
$scope.inputArray.push($scope.stuffToShow);
$scope.stuffToShow = "";
};
$scope.clear = function () {
$scope.inputArray = [];
};
}]);
app.controller('loginController', ['$scope', function ($scope) {
$scope.userName = "Nick";
$scope.password = "123456";
$scope.verification = true;
do {
$scope.userNameCheck = function (name) {
if (name !== $scope.userName)
$scope.verification = false;
};
$scope.passwordCheck = function (pass) {
if (pass !== $scope.password)
$scope.verification = false;
};
} while (!$scope.verification);
}]);
loginController.js:
app.controller('mainController', ['$scope', function ($scope) {
$scope.inputArray = [];
$scope.stuffToShow = "";
$scope.addInput = function () {
$scope.inputArray.push($scope.stuffToShow);
$scope.stuffToShow = "";
};
$scope.clear = function () {
$scope.inputArray = [];
};
}]);
app.controller('loginController', ['$scope', function ($scope) {
$scope.userName = "Nick";
$scope.password = "123456";
$scope.verification = true;
do {
$scope.userNameCheck = function (name) {
if (name !== $scope.userName)
$scope.verification = false;
};
$scope.passwordCheck = function (pass) {
if (pass !== $scope.password)
$scope.verification = false;
};
} while (!$scope.verification);
}]);
index.html:
编辑
<html ng-app="myApp">
<head>
<title>My app</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/main.css" rel="stylesheet" />
</head>
<body>
<nav>
<!--ADD # FOR ng-route -->
<a href="#/">Home</a>
<a href="#/about">About</a>
<a href="#/contact">Contact</a>
<a href="#/homepage">Homepage</a>
</nav>
<div ng-view>
<!--HELLO WORD! -->
</div>
<!--YOUR JS FILES -->
<script src="js/angular.min.js" type="text/javascript"></script> <!--I RECOMMEND YOU DOWNLOAD IT -->
<script src="js/angular-route.min.js" type="text/javascript"></script>
<script src="js/app.js" type="text/javascript"></script>
<script src="js/loginController.js" type="text/javascript"></script>
<script src="js/mainController.js" type="text/javascript"></script>
</body>
})) 基本上,您的脚本很好,您只需要更改几个小细节 我做了一个小提琴,显示你的代码工作 您的
另外,您的需要引用一个URL,而不是模板文件,因此将其更改为
.otherwise({
redirectTo: "/login"
});
最后一件事,如果您从CDN加载,那么您也可以从CDN加载ngRoute。我已经找到了解决问题的方法。事实证明,因为我没有在服务器上托管文件,Chrome给了我错误,尤其是
XMLHttpRequest cannot load file:///C:/Users/**/partials/homepage.html.
及
我通过安装node.js并设置自己的文件服务器修复了这个问题,瞧!加载模板时没有问题。它只显示{{inputs}
:打开js控制台,阅读angularjs告诉您的内容。你可以点击一个链接来获取详细信息。啊,是的,我忘了提到JSLint给我的错误。它说:“angular在被定义之前就被使用了。var app=angular.module('myApp',['ngRoute']);“我第一次制作这个应用程序时出现了这个错误,并通过将CDN脚本放在我的app.js脚本之上修复了它。但现在我似乎无法找出错误发生的原因。我已经移动了所有脚本的顺序,但没有用。您也可以键入“使用strict”
位于所有JS文件的顶部,以便在控制台日志中获得更详细的信息,并使用更准确的错误/警告检查器验证JS代码。它还将删除有关“使用严格”问题的错误/警告。添加了角度文件并更改了控制器参数的结构,但错误仍然相同。我编辑了我的答案,请查看是否适合您index.html页面从未出现过任何问题。相反,我试图修复的是homepage.html。如果加载它,可以看到它显示{{inputs}},而不是提交到文本框中的内容。但是,我添加了#
并更改了,否则
XMLHttpRequest cannot load file:///C:/Users/**/partials/homepage.html.
Error: [$compile:tpload] Failed to load template: partials/homepage.html (HTTP status: -1 )