如何在 ng-include 中调用内联方法并连接结果?

How to call a method inline in ng-include and concatenate the results?

我希望方法的结果成为传递给 ngInclude 的字符串的一部分。像这样:

<div ng-repeat="result in queryResults.results">
   <div class="box" ng-include="'views/' + getRenderer(result) + 'result.html'"></div>
</div>

这行不通。它不会抛出错误,但结果是 views/result.html。我登录 getRenderer() 并确认它没有被调用。

我不确定为什么我上面的代码不起作用而这段代码有效:

<div class="box" ng-include="'views/widgets/' + result.someVariable + 'result.html'"></div>

编辑:getRenderer 只是 returns 一个字符串:

function getRenderer(result) {
    if (result === 'a') {
        return 'aaa';
    else 
        return 'bbb';
}

您应该将以下内容添加到您的 controller。基本上提供一个指向范围变量的函数指针,以便可以在 HTML

上访问它
$scope.getRenderer = getRenderer