gpt4 book ai didi

javascript - 在 Controller 中初始化作用域变量

转载 作者:行者123 更新时间:2023-11-29 19:12:44 27 4
gpt4 key购买 nike

所以我对 AngularJS 是全新的,并且学习了类(class)并开始“学习”这个框架。我观看了本页顶部的 2 个截屏视频:

https://github.com/curran/screencasts/tree/gh-pages/introToAngular

在观看了两个截屏视频并研究了一些示例之后,我尝试创建自己的简单 Angular 应用程序,并尝试在其中使用一些 Controller 。现在我有以下代码:

Index.html

<html ng-app="WIMT">
<head>
<title>trying out angularJS</title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<script type="text/javascript" src="../bower_components/angular/angular.min.js"></script>
<script type="text/javascript" src="../JS/app.js"></script>

</head>
<body>

<div ng-controller="controllerA as a">
{{a.varA}}
</div>

<div ng-controller="controllerB as b">
{{b.varB}}
</div>

<div ng-controller="controllerC as c">
{{c.varC}}
</div>

</body>
</html>

JS

(function() {

var app = angular.module('WIMT',[]);


app.controller('controllerA',function($scope,$http){
$scope.varA = "A";
});

app.controller('controllerB',['$scope',function($scope) {
$scope.varB = "B";
}
]);

app.controller('controllerC',function($scope, $http) {
var reg = this;

reg.varC = "C";
});

})();

在我尝试将 varA 绑定(bind)到 Controller A 中的范围后,我发现它不起作用,于是我在互联网上寻找解决方案。我发现了几种应该(可能?)起作用的不同方式(B 和 C)。当我运行 html 时,只有选项 C 有效并显示 C。 A 和 B 都没有显示。

为什么选项 A 和 B 在此示例中不起作用?

最佳答案

因为您使用的是 controllerAs 语法,所以第三个有效而前两个无效。

<div ng-controller="controllerA as a">
{{a.varA}}
</div>

<div ng-controller="controllerB as b">
{{b.varB}}
</div>

<div ng-controller="controllerC as c">
{{c.varC}}
</div>

如果你想打印a.varAb.varB,你必须改成下面的样子:

<div ng-app="app">
<div ng-controller="controllerA as a">
{{varA}}
</div>

<div ng-controller="controllerB as b">
{{varB}}
</div>

<div ng-controller="controllerC as c">
{{c.varC}}
</div>
</div>

http://jsfiddle.net/t0hhp5wz/

关于javascript - 在 Controller 中初始化作用域变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37568914/

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