使用Angular在视图内连接字符串

时间:2015-12-02 21:56:20

标签: javascript html angularjs view ng-repeat

我在控制器中有一个变量json,它有一个'元素数组',我想在同一个tr标签中显示所有元素,并带有' '两个元素之间。我想做以下示例:

element1 element2 element3 element4 element5 element6

这样做的最佳方法是什么?我想在视图中执行此操作而不使用控制器,也不要使用范围。

下面,我复制了我的观点代码,我想做这样的事情(它不起作用)

 <div ng-repeat="element in data.elements">
  {{ element }}
 </div>

data.elements看起来像这样:

"elements": ["element_1", "element_1","element_2","element_3","element_4","element_5","element_6",  ]

注意:元素是数据内部的对象。

1 个答案:

答案 0 :(得分:0)

如果您不希望使用控制器,那么在将数据绑定到视图时,您的数据应该按照您希望的格式进行格式化。 (AKA已经格式化了你想要的方式)。

否则,控制器的整个要点是将数据操作和逻辑与视图分开。

至少,如果你不能引用一个外部javascript文件(我猜这是你的问题[由于cms限制或其他]),你可以在脚本标签中内联你的控制器。)

<script type='text/javascript'> 
  angular.module('nameOfYourAppModule').controller('ProperlyNamedViewController',[viewControllerFn]);

  function viewControllerFn() {
    vm = this;
    vm.data = {"elements": ["element_1", "element_1","element_2","element_3","element_4","element_5","element_6",  ]}

    vm.returnFormattedElements = function returnFormattedElementsFn() {
      return vm.data.elements.join(" ");
    }

  }
</script>

并在您的HTML中

<div ng-controller="ProperlyNamedViewController as viewModelSoIDontUseScope"> 
    {{ viewModelSoIDontUseScope.returnFormattedElements() }}
</div>

如果这太乱了,你也可以简单地做{{ data.elements.join(' ') }}而你不想使用控制器。