单击Angularjs后更改按钮颜色

时间:2013-11-05 00:04:08

标签: javascript html angularjs

这就是我现在拥有的: 的index.html

<div ng-app>
  <h2>Todo</h2>
  <div ng-controller="TodoCtrl">
    <button class="btn btn-danger" ng-click="start()">Start</button>
  </div>
</div>


function TodoCtrl($scope) {
  $scope.start = function() {

  };
}

我可以填写$scope.start功能,以便点击按钮后,按钮的颜色变为黄色。

3 个答案:

答案 0 :(得分:11)

您可以使用ng-class定义类似$scope.started = false;的var,并在其中启动函数将其设置为true。在你的按钮上执行以下操作:

ng-class="{'btn-warning': started, 'btn-danger': !started}"

另一种写作方式:

ng-class="started && 'btn-warning' || !started && 'btn-danger'"

注意:从您的类属性

中删除btn-danger

修改

更新,更常见的方式是标准的三元运算符(也更容易阅读):

ng-class="started ? 'btn-warning' : 'btn-danger'"

答案 1 :(得分:2)

最好的方法是将按钮样式绑定到变量,如下所示:

<button class="button button-block {{buttonStyle}}" ng-click="start()">
    {{buttonText}}
</button>

并在您的范围中定义buttonStylebuttonText

$scope.buttonText = "Start";
$scope.buttonStyle="button-calm";

$scope.start = function(){
    $scope.buttonText = "Clicked!";
    $scope.buttonStyle="button-assertive";
}

答案 2 :(得分:-3)

这可以使用指令轻松完成。你可以看看这个。 https://www.youtube.com/watch?v=sYexGR7FQX0