Ответ 1
В функции
$scope.toggleClass = function(class){
$scope.class = !$scope.class;
}
$scope.class
не имеет ничего общего с параметром class
. Это буквально свойство на $scope
, называемое class
. Если вы хотите получить доступ к свойству на $scope
, который идентифицируется переменной class
, вам нужно использовать аксессуар типа массива:
$scope.toggleClass = function(class){
$scope[class] = !$scope[class];
}
Обратите внимание, что это не Angular; это именно то, как работает JavaScript. Возьмем следующий пример:
> var obj = { a: 1, b: 2 }
> var a = 'b'
> obj.a
1
> obj[a] // the same as saying: obj['b']
2
Кроме того, код
<div ng-click="toggleClass(myClass)"></div>
делает предположение, что в вашей области есть переменная, например. $scope.myClass
, который оценивает строку, которая имеет имя свойства, к которому вы хотите получить доступ. Если вы буквально хотите передать строку myClass
, вам понадобится
<div ng-click="toggleClass('myClass')"></div>
Пример не делает его супер понятным, что вы ищете (поскольку в верхней части div
есть класс с именем myClass
).