Javascript 应用程序没有';当控制器位于单独的文件中时,不能加载
这是对我的问题的补充: 正如我在最终编辑中所述: 我已经解决了这个问题,将控制器放在应用程序所在的同一个文件中 已定义-Javascript 应用程序没有';当控制器位于单独的文件中时,不能加载,javascript,jquery,html,angularjs,angular-controller,Javascript,Jquery,Html,Angularjs,Angular Controller,这是对我的问题的补充: 正如我在最终编辑中所述: 我已经解决了这个问题,将控制器放在应用程序所在的同一个文件中 已定义-app.js。当放置在单独的文件夹中时,它不工作。 我不知道这是为什么 但这是为什么呢?我已经尝试了好几次,当控制器位于单独的文件-js/controller.js中时,应用程序无法加载。我已经检查了路径,它是正确的 以下是应用程序: 这是我的HTML: <body data-ng-app="App"> * * * <div ng-controller="C
app.js
。当放置在单独的文件夹中时,它不工作。
我不知道这是为什么
但这是为什么呢?我已经尝试了好几次,当控制器位于单独的文件-js/controller.js
中时,应用程序无法加载。我已经检查了路径,它是正确的
以下是应用程序:
这是我的HTML:
<body data-ng-app="App">
*
*
*
<div ng-controller="Ctrl">
<p>{{obj.desc}}</p>
</div>
*
*
*
</body>
controller.js
app.controller('Ctrl', function($scope) {
$scope.obj = [
{
intro: "intromessage",
desc: "desc"
},
{
intro: "intromessage2",
desc: "desc"
}
];
});
var homeController = function($scope) {
$scope.obj = [
{
intro: "intromessage",
desc: "desc"
},
{
intro: "intromessage2",
desc: "desc"
}
];
}
假设controller.js加载正确。您需要在新文件中定义
var应用程序
:
var app = angular.module('App'); //Continue your app module
app.controller('Ctrl', function($scope) {
$scope.obj = [
{
intro: "intromessage",
desc: "desc"
},
{
intro: "intromessage2",
desc: "desc"
}
];
});
你可以很容易地解决这个问题。您必须在js文件中做一些小的修改 app.js
var app = angular.module('App', []);
var app = angular.module('App', []);
app.controller('Ctrl',homeController);
controller.js
app.controller('Ctrl', function($scope) {
$scope.obj = [
{
intro: "intromessage",
desc: "desc"
},
{
intro: "intromessage2",
desc: "desc"
}
];
});
var homeController = function($scope) {
$scope.obj = [
{
intro: "intromessage",
desc: "desc"
},
{
intro: "intromessage2",
desc: "desc"
}
];
}
这对你有用。确保在布局页面中,在应用程序js之前包含控制器js
例如:
<script src="~\controller.js"></script> <!--first-->
<script src="~\App.js"></script> <!--second-->
实际上,如果他在不同的范围内操作,则不需要它is@dbarthel你所说的不同范围是什么意思?如果他在全局范围(全局VAR)上操作,那么这不是必需的,他显然是在回应之后。通常,最好不要在全局范围内操作,而是将角度代码包装到函数调用中以将它们分开。那么每个文件都有自己的作用域,您需要定义您的模块new请在这里继续阅读关于var作用域的内容它并没有那么复杂,但是这里有比简短注释更好的来源;)这也很好!有时你必须这样做,有时你不这样做。你们能解释一下吗?这都和变量的范围有关。如果您为不完整的注释定义了sorry,那么这一切都与范围有关。如果您在app.js中定义app变量并在controller中调用它,则在此之前app变量尚未定义。所以它不会注册。如果您想让您的原始代码本身正常工作,那么布局中的inclue app.js优先于Controller,即使这样也能正常工作:)试试onceThanks mate,现在更清楚了。角度真的很特别。:)欢迎索洛:)是的,是:)