我刚开始从w3schools学习AngularJS。我正在尝试练习他们在教程中提到过的示例。一切都运行正常,但当我来到" AngularJS控制器"它在w3schools Try it Yourself »中工作得不好。我将代码分成了fiddle example。 我的脚本看起来像这样:
function personController($scope) {
$scope.firstName= "John";
$scope.lastName= "Doe";
}
尽量帮助我并向我推荐一个好的教程(或任何免费的pdf文件)。
答案 0 :(得分:22)
这是 corrected fiddle 。
对于角度来说,控制器定义必须如下所示是一个很好的做法:
angular.module("app", []).controller("personController", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
毫无疑问,学习Angular 基础知识的最佳教程是 CodeSchool 一个!
希望这有帮助。
答案 1 :(得分:11)
这是一种新方法。我们不能再使用没有模块的控制器。看看this。只需添加一个模块并附加控制器即可,您将没有任何问题。
答案 2 :(得分:5)
我刚修改了你的小提琴。请查看fiddle example
function personController($scope) {
$scope.firstName= "John";
$scope.lastName= "Doe";
}
您的代码没有问题,除了从 onLoad 到没有换行
的JS小提琴设置
答案 3 :(得分:1)
您需要创建一个应用程序模块,然后为其添加一个控制器。在角度中,它是关于依赖性的。其次,你需要一个应用程序名称。 基础教程位于其主页上:https://docs.angularjs.org/tutorial/step_00 我开始使用它,它对我很好。只需从步骤1开始执行所有步骤。
答案 4 :(得分:1)
这是" Angular Controller Not Working"的常见搜索结果。所以我认为有助于添加修复我的"控制器无法工作的解决方案"问题
我的基本路由$routeProvider
指向控制器文件,而templateUrl指向部分,如下所示:
$routeProvider.when('/', {
templateUrl: 'partials/home.html',
controller: 'homePage'
});
我有其他几条路线,所有这些控制器都有效,但出于某种原因,我的第一条路线不会。事实证明,我的部分逻辑错误很小,导致我的控制器代码无法运行。
愚蠢的小错误,但是我措手不及,这部分是一个逻辑问题阻止了任何控制器代码的运行。我花了很长时间才愿意承认,因为问题不在我的#14; JavaScript"即使控制台错误存在。紧密耦合的前端代码的乐趣,amiright?答案 5 :(得分:1)
您必须在模块
中输入函数作为参数var app = angular.module('app',[]);
app.controller('personController',function($scope){
$scope.firstName = 'John';
$scope.lastName = 'Smith';
});
答案 6 :(得分:1)
在html的任何标记中添加np-app="myApp"
,例如 <html ng-app = "myApp">
,我的代码运行良好。
答案 7 :(得分:0)
如果您尝试将ngApp嵌套到其他ngApp中,可能会出现相同的问题。
文档说:
AngularJS applications cannot be nested within each other.