gpt4 book ai didi

javascript - 我试图理解 AngularJS 的controllerAs 语法

转载 作者:行者123 更新时间:2023-12-02 16:28:53 24 4
gpt4 key购买 nike

但是,在编写了一些使用 Controller 的示例后, Controller 将无法加载。我收到一个错误:

firstController is not a function

经过一番谷歌搜索后,我发现 Angular 1.3.x 不再支持全局 Controller 。我见过的所有关于创建 Controller 的新方法的示例似乎都是在我的 app.js 文件中创建它们的。我很困惑,这现在是否意味着我必须在这里创建所有 Controller ,而不是为每个 Controller 创建一个专用文件。我已经尝试过这个来创建 Controller ,但仍然没有成功:

更新:我更改了 Controller 以匹配 jedanput 的答案,但将 $scope 更改为此。

app.controller('firstController', [function(){
this.name = "Tim";

}]);

此外,我发现非常烦人的是,大多数示例仍然引用 Angular 1.2 中的完成方式。任何帮助将不胜感激,因为我无法理解这个问题。

编辑:这是我的index.html 文件。希望这能帮助你们了解出了什么问题。

<!DOCTYPE html>
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp">

<head >
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>ControllerAs</title>
<meta name="description" content="">

</head>
<body>



<div class="content" ng-view=""></div>

<!-- jQuery -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<!-- AngularJS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.6/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.6/angular-route.js"></script>

<script type="text/javascript" src="../js/app.js"></script>

<!--Directives-->
<script type="text/javascript" src="../js/directives/it-works.js"> </script>

<!--Controllers-->
<script type="text/javascript" src="../js/controllers/firstController.js"></script>
<script type="text/javascript" src="../js/controllers/secondController.js"></script>





</body>
</html>

到目前为止,我已经避免使用 Controller ,因为我所做的一切都可以通过指令和服务来完成,但现在是我更多地了解 Controller 的时候了。我认为这可能是我所缺少的一些基本东西。再次感谢任何帮助。

更新:仍然遇到相同的错误。这是我的 app.js 文件。也许它可以阐明这个问题。

var app = angular.module('myApp',[
'ngRoute'


]);

app.config(function($routeProvider) {
$routeProvider.when('/', {
templateUrl: "../partials/test-skeleton.html"



})
});

最佳答案

应该是

app.controller('firstController', ['$scope', function($scope){
$scope.name = "Tim";
}]);

此外,controllerAs 语法只是作用域的合成糖,您可以避免使用它:

<div ng-controller="oneCtrl">
{{name}}
</div>

而是使用这个:

<div ng-controller="oneCtrl as one">
{{one.name}}
</div>

当您有嵌套 Controller 时,这会非常有帮助。

关于javascript - 我试图理解 AngularJS 的controllerAs 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483797/

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