我有一个表,该表随着时间的推移将具有不同的列,并且我希望django视图支持这些变化的列。我也想用ng-repeat来做一些花哨的东西,例如过滤和其他东西。但是我很难将两者结合起来。
我col_names
用Django模板语言传递了任意值。packages
也是使用django模板语言发送的,本质上是一个json数组,其中每一行都是到某个值的dict
映射col_name
。IE
$scope.packages = [{'col1': 'row1col1', 'col2': 'row2val2'}, {'col1': 'row2col1' ....
但是,当我使用来插入行时,packages
无法“嵌套”我的模板。有没有办法从“包”的每一行中获取任意值?
<input ng-model="search" placeholder="Search">
<table style="width:100%;">
<thead>
<tr>
<th>Permanent Column 1</th>
<th>Permanent Column 2</th>
{# changing columns #}
{% for col_name in col_names %}
<th>{{ col_name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
<tr ng-repeat="package in packages | filter:searchPackage">
{% for col_name in columns %}
<td>{{package.{{ col_name }}}}</td> DOESN'T WORK!
{% endfor %}
</tr>
</tbody>
</table>
在那条问题线上,我本质上想拥有,{{package.ACTUAL_ARBITRARY_COL_NAME}}
但我不知道如何以编程方式进行操作
默认情况下,Django和AngularJS使用相同的标记{{
和}}
模板。
因此,这首先由Django模板处理
{% for col_name in columns %}
<td>{{package.{{ col_name }}}}</td> DOESN'T WORK!
^ ^
|________________________|
Django template will try to process this value
因为Django尝试扩展first内部的内容{{...}}
,所以您不会获得AngularJS想要的内容。
更好的方法是为AngularJS提供您希望Django为您循环的项目。
$scope.columns = [...];
然后使用AngularJS进行所有循环。无论采用哪种方式,如果需要在AngularJS中完成,最好在AngularJS中完成所有操作,而不是在Django一半half-AngularJS中完成。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句