在角度js中动态地将类添加到div

时间:2015-12-19 05:42:55

标签: javascript jquery angularjs

我有这样的div

buttonStart.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //put your logic here to set the time with hourPicked and minPicked variables
            timer = new CounterClass((hours * 60 * 1000) + (minutes * 1000), 1000);
            String hms = String.format(("%02d:%02d"), hours, minutes);
            textViewTime.setText(hms);
            Intent intent = new Intent(SleepTimer.this, MainActivity.class);
            String TimeValue = (hms);
            intent.putExtra("TimeValue", TimeValue);
            startActivity(intent);
            timer.start();
        }
    });

我想添加一个“活跃的”课程。角度为js的这个div。 我在我的角度js控制器中尝试过这样的事情

<div ng-model="star"></div>

但是,我收到了错误。我是棱角分明的新手。请帮帮我......

3 个答案:

答案 0 :(得分:1)

试试这个:

<div ng-class="{ active: star == 'yes', 'in-active': star == 'no' }" ng-bind="star"></div>

您可以根据表达式(true或false)分配一个或多个类。 如果类名具有连字符,请用单引号括起来。 这是一种更好的方法,比控制器中的更改更受欢迎。 此外,因为这是一个div,你必须做ng-bind,而不是ng-model。 ng-model适用于输入等字段。

更新:

由于您坚持在代码中更改类,因此它是:

$("div[ng-bind='star']").addClass('active');

答案 1 :(得分:1)

如果您想动态访问更改类,那么您可以将控件放在控制器中的星级变量中,如下所示:

$.watch('star',function(newVal, oldVal){ 
  // put your code to here based on new value and old value
  // you can add class to your div like :
  // angular.element("div[ng-bind='star']").addClass('active');
});

答案 2 :(得分:0)

使用变量来控制你的班级

$(function () {
    $("#next").click(function () {
        $(".tabs li.selected").next('li').find('a').click()
    });

    $("#back").click(function () {
        $(".tabs li.selected").prev('li').find('a').click();
    });
});
控制器中的

<div ng-class="customClass"></div>

所以,您可以使用if-else来更改类名

$scope.customClass = 'active custom-class1';