有没有办法在ng-include中使用角度滤波器?

时间:2014-05-12 06:56:20

标签: angularjs angularjs-filter angularjs-ng-include

这就是我想要做的事情:

ng-include=" 'views/directives/list_elements/'+ list.type.object | listobjects +'.html' "

没有过滤器,它可以正常工作

1 个答案:

答案 0 :(得分:1)

过滤器在表达式中工作,而ng-include赋值是一个字符串。这就是为什么,您可以ng-init您想要成为特定控制器范围内URL的一部分,然后使用它。

来自the documentation

<script>
function Ctrl($scope) {
  $scope.list = [['a', 'b'], ['c', 'd']];
}
</script>
<div ng-controller="Ctrl">
<div ng-repeat="innerList in list" ng-init="outerIndex = $index">
  <div ng-repeat="value in innerList" ng-init="innerIndex = $index">
     <span class="example-init">list[ {{outerIndex}} ][ {{innerIndex}} ] = {{value}};</span>
  </div>
</div>
</div>

对于您的情况,您可以执行以下操作:

ng-init="url_part=list.type.object | listobjects +'.html'"

然后在您的网址中使用它。

'views/directives/list_elements/'+url_part

否则,您也可以在控制器中使用相同的过滤器。