javascript - 结合 ng repeat 和 django 模板语言

标签 javascript python angularjs django

我有一个表,随着时间的推移会有不同的列,我希望我的 Django View 支持那些不断变化的列。我还想使用 ng-repeat 来做一些花哨的事情,比如过滤和其他事情。但是我无法将两者结合起来。

我正在使用 django 模板语言传入任意 col_namespackages 也与 django 模板语言一起发送,本质上是一个 json 数组,其中每一行都是一个 dictcol_name 映射到某个值。即

$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 试图扩展第一个 {{...}} 中的内容,所以您不会得到您希望 AngularJS 看到的内容。

If you want to continue down that road, I suggest you read some solutions to this problem here

更好的解决方案

更好的方法是为 AngularJS 提供您希望 Django 为您循环的项目。

$scope.columns = [...];

Then use AngularJS to do all the loops .无论采用哪种方式,如果您需要在 AngularJS 中完成,最好全部在 AngularJS 中完成,而不是一半 Django 一半 AngularJS。

关于javascript - 结合 ng repeat 和 django 模板语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34863234/

相关文章:

python - "pip install unroll": "python setup.py egg_info" failed with error code 1

python - type函数如何判断对象的类型?

javascript - 访问主 Controller 中的 url 参数

javascript - 如何在 Angular 中实现表单投影?

javascript - 从 JavaScript 字典对象中获取最大值

javascript - ng-click 不适用于动态超链接

javascript - 使用 ng-repeat 使用实时数据动态更新 bootstrap angularjs 表

javascript - Angular ng-file-upload 删除

python - 使用 Python 的 os.walk 函数和 ls 命令获得不同的结果

javascript - 关闭 Bootstrap 模式弹出窗口时调用方法