gpt4 book ai didi

javascript - 当脚本位于index.html之外时,为什么 Controller 无法工作?

转载 作者:行者123 更新时间:2023-12-03 11:17:26 24 4
gpt4 key购买 nike

我对以下内容感到困惑。当我从 https://www.firebase.com/tutorial/#session/xa9242ucksy 复制以下教程时:

<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.17/angular.min.js"></script>
<script src="https://cdn.firebase.com/js/client/1.1.1/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/0.8.0/angularfire.min.js"></script>
<link rel='stylesheet' href='/resources/tutorial/css/example.css'/>
</head>

<body ng-controller="MyController">

<!-- CHAT MARKUP -->
<div class='example-chat l-demo-container'>
<header>Firebase Chat Demo</header>

<div class='example-chat-toolbar'>
<label for='nameInput'>Username:</label>
<input ng-model='name' type='text' id='nameInput' placeholder='enter a username...'>
</div>

<ul id='example-messages' class='example-chat-messages'>
<li ng-repeat='msg in messages'>
<strong class='example-chat-username'>{{msg.from}}</strong>
{{msg.body}}
</li>
</ul>

<footer>
<input ng-model='msg' ng-keydown="addMessage($event)" type='text' id='messageInput' placeholder='Type a message...'>
</footer>
</div>

<script>
var myApp = angular.module("myApp", ["firebase"]);

myApp.controller('MyController', ['$scope', '$firebase',
function($scope, $firebase) {
//CREATE A FIREBASE REFERENCE
var ref = new Firebase("https://xa9242ucksy.firebaseio-demo.com/");

// GET MESSAGES AS AN ARRAY
$scope.messages = $firebase(ref).$asArray();

//ADD MESSAGE METHOD
$scope.addMessage = function(e) {

//LISTEN FOR RETURN KEY
if (e.keyCode === 13 && $scope.msg) {
//ALLOW CUSTOM OR ANONYMOUS USER NAMES
var name = $scope.name || 'anonymous';

//ADD TO FIREBASE
$scope.messages.$add({
from: name,
body: $scope.msg
});

//RESET MESSAGE
$scope.msg = "";
}
}
}
]);
</script>
</body>
</html>

并且不是将脚本放在索引页中,而是删除该部分,将其复制到名为 app.js 的文件中并保存,然后它不再工作了???基本上我在头部添加:

<head>
// OTHER
<script src="js/app.js"></script>
</head>

编辑:当我尝试以下操作时,它确实有效。但话又说回来,这个引用文献一开始就有什么问题吗?我想将它存储在 JS 文件夹中。

<head>
// OTHER
<script src="app.js"></script>
</head>

编辑2:好吧,问题似乎是我存储了多个 .js 文件。所以问题更多地集中在 AngularJS 上。基本上我有多个文件,因为我想拆分我的 Controller ,所以当我在 index.html 文件末尾有以下内容时:

不起作用

<script src="js/maps.js"></script>
<script src="js/app.js"></script>
<script src="js/controller-fb.js"></script>
<script src="js/controller-maps.js"></script>

有效

<script src="js/app.js"></script>

我的其他文件看起来与 app.js 类似

最佳答案

JavaScript 在到达页面时始终会被解析。对于您编写的脚本,它将在解析时运行。

把它放在 <head> 中HTML 部分意味着在运行时不存在任何 DOM。

输入 <script src="app.js"></script>在与 <script> 相同的位置在顶部示例中,它将像以前一样工作。

关于javascript - 当脚本位于index.html之外时,为什么 Controller 无法工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27276633/

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