尝试根据函数结果设置 ng-class

Trying to set ng-class according to function result

我有一个函数,当我发出某种词语时 returns 为真。此函数是正确的并经过验证,但是我无法将其结果显示在视图中:

<li ng-class="{'active': ctrl.currentPage('parceiro')}"><a class="waves-effect waves-orange" href="parceiro.php"><i class="flaticon-college"></i>Seu Perfil</a></li>

对于ctrl.currentPage('parceiro'),结果是true(用console.log测试)。有什么想法吗?

编辑:DOM 显示为 <li ng-class="{'active': ctrl.currentPage('parceiro')}"><a class="waves-effect waves-orange" href="parceiro.php"><i class="flaticon-college"></i>Seu Perfil</a></li>{'active': ctrl.currentPage('parceiro')} 不是 "compiled"?

此外,我正在测试的功能是

currentPage = function(name){
        return true;
    }

问题是我忘记在控制器中将 this 设置为 ctrl

看起来像你 ,但想提供一些代码示例上下文以供将来参考。

下面的代码片段是一个使用您的代码作为基础的工作示例。

function SimpleCtrl(){}
SimpleCtrl.prototype = {
  currentPage:'',
  setCurrentPage:function(val){
    console.log({name:'currentPage', val:val, result:this.currentPage === val});
    return this.currentPage === val;
  }
};

angular.module('so-app', [])
  .controller('simpleCtrl', SimpleCtrl);
.active {
  border:5px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<div ng-app="so-app" ng-controller="simpleCtrl as ctrl">
  <br />
  <button type="button" ng-click="ctrl.currentPage = 'parceiro'">Set Page = 'parceiro'</button>
  <button type="button" ng-click="ctrl.currentPage = ''">Clear</button>
  <br />
  <h3>{{ctrl.currentPage}}</h3>
  <br />
  <br />
  <li ng-class="{'active': ctrl.setCurrentPage('parceiro')}"><a class="waves-effect waves-orange" href="parceiro.php"><i class="flaticon-college"></i>Seu Perfil</a></li>
</div>

你的代码是完美的,但是 ng-class 语句是错误的。所以使用正确的方法

`<li ng-class="({active: ctrl.currentPage('parceiro')})"><a class="waves-effect waves-orange" href="parceiro.php"><i class="flaticon-college"></i>Seu Perfil</a></li>`