gpt4 book ai didi

javascript - "this"与 Angular 上的 $scope

转载 作者:行者123 更新时间:2023-11-27 23:44:42 26 4
gpt4 key购买 nike

我知道有人问过类似的问题,并且我已阅读答案,但我仍然不明白,因此我们将不胜感激。

下面的代码有效。但是,如果我在 bindTestclickTest 函数之前使用 $scope 而不是 this (第 3 行和第 6 行) , 这是行不通的。谁能告诉我为什么?根据我所读到的内容,我希望 $scope 能够在这里工作。

另一方面,如果我在 offOrOn(第 8 行)之前使用 this 而不是 $scope,那么不会工作。

angular.module('myTestApp', [])
.controller('MyTestController', function($scope) {
this.bindTest = function() {
console.log("bindTest");
};
this.clickTest = function() {
console.log("clickTest");
$scope.offOrOn = 'on';
};
});
button {
height:25px;
width:25px;
}
.on {
background-color:red;
}
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myTestApp" ng-controller="MyTestController as tester">
<p ng-bind="tester.bindTest()"></p>
<button ng-class="offOrOn" ng-click="tester.clickTest()"></button>
</div>
</body>

此外,顺便说一句,我尝试创建 a fiddle ,但它不起作用,Chrome 开发控制台告诉我它不会加载该模块。我很好奇那里出了什么问题。但很高兴 stackoverflow 现在提供了一个相同且有效的函数!

最佳答案

您使用controller as语法。这意味着添加到 this 的所有内容都可以使用 tester 访问,并且添加到 $scope 的所有内容都可以使用(仅)无需 测试。.

现在应该清楚为什么 this.offOrOn 不起作用:在 HTML 中,您不使用 tester.offOrOn

关于javascript - "this"与 Angular 上的 $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33326863/

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