Я знаю, что подобные вопросы были заданы, и я прочитал ответы, но я до сих пор этого не понимаю, поэтому любая помощь будет оценена.
Код ниже работает. Однако, если я использовал $scope
вместо this
перед функциями bindTest
и clickTest
(строки 3 и 6), он не работает. Может ли кто-нибудь сказать мне, почему? Из того, что я прочитал, я бы ожидал, что здесь будет работать $scope
.
С другой стороны, если я использую this
вместо $scope
перед тем offOrOn
(строка 8), что делает не работу.
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, но он не работает, а DEV консоли Chrome говорит мне, что это не будет загружать модуль. Мне любопытно, что там не так. Но здорово, что stackoverflow теперь обеспечивает идентичную функцию, которая работает!
Поскольку '$ scope' - это не то же самое, что' this', я задаюсь вопросом, откуда вы взяли идею, что обмен этими работами должен работать. – zeroflagL