我有一个html元素:
<i ng-click="run()"></i>
并在我的控制器中:
$scope.run() = function($event) {
var el = $event.currentTarget;
}
现在我如何才能在el
元素上添加一些类,但el.addClass('class-name')
无法正常工作
我只能在这里使用javascript而不是jquery
答案 0 :(得分:2)
ng-class="expression"
建议您使用ng-class
而不是使用控制器来添加类。
但如果您需要
,也可以使用element.classList.add('className')
答案 1 :(得分:1)
HTML:
<i ng-click="run($event)"></i>
JS:
$scope.run() = function(event) {
var element = angular.element(event.currentTarget);
element.addClass('new');
}
答案 2 :(得分:1)
答案 3 :(得分:1)
你可以在这里使用ng-class演示Jsfiddle demo
Js代码
var app = angular.module('app', []);
app.controller('ctrl', function($scope) {
$scope.myClass = false;
$scope.addClass = function() {
$scope.myClass = true;
}
});
<强> HTML 强>
<div ng-app="app">
<div ng-controller='ctrl'>
<span ng-class='{myClass:myClass}'>This my content</span>
<button ng-click='addClass()'>
Add class
</button>
</div>
</div>
答案 4 :(得分:1)
我认为更合适的做法是将ng-class
用于i
元素,并将其绑定到范围内的某个变量。
示例:
您的HTML:
<i ng-click="changeClass()" ng-class="myClass"></i>
你的Angular控制器:
function Controller($scope){
$scope.myClass = "";
$scope.changeClass = function() {
$scope.myClass = //Put here your CSS class
}
}
答案 5 :(得分:1)
您可以在Angular js中使用ng-class
<i ng-class="myclass" ng-click="run()"></i>
控制器中的
$scope.run() = function(event) {
$scope.myclass="classname";
}
答案 6 :(得分:1)
只需在HTML
中添加如下内容即可<i ng-click="run($event)">i</i>
在控制器中
$scope.run = function($event) {
$event.target.classList.add("className")
}