基于控制器中的条件语句更改ng-class

时间:2016-09-06 20:41:55

标签: javascript angularjs

我正在尝试使用具有特定背景图像的CSS类更新ng-class。例如:

<button id="search" ng-class="{travel: travel }">Search</button>

for(var i = 0; i < arrayLength; i++) {

    var descriptions = uniqueFilters[i].split(' ');

       if(descriptions.indexOf('Travel') > -1) {
           $scope.travel = "travel";

             } else {

                }
           }}

我收到一串字符串。我接受字符串,将句子分成单个单词,然后如果他们有特定单词,则更新课程以应用特定的背景图像。

如何让它发挥作用?

2 个答案:

答案 0 :(得分:1)

正如@Dave V在他的评论中所说,ng-class指令需要一个布尔值,所以旅行必须是真的:

$scope.travel = true;

或者,如果您需要它是一个字符串,您可以执行以下操作:

ng-class="{travel: travel == 'travel' }"

希望有帮助=)

答案 1 :(得分:0)

您可以将函数传递到需要评估为truefalse的{​​{3}}指令。

如果在控制器中创建函数travel,则将其传递到视图中的指令中:

<button id="search" ng-class="{travel: travel() }">Search</button>

在您的控制器中:

// ... your other code

$scope.travel = function() {

  for (var i = 0; i < arrayLength; i++) {

    var descriptions = uniqueFilters[i].split(' ');

    if (descriptions.indexOf('Travel') > -1) {

      // we have satisfied our condition
      // the class 'travel' will be added to the button
      return true;

    }

  }

  // we didn't satisfy the condition in our loop
  // the class 'travel' will NOT be added to the button
  return false;

}