【问题标题】:Angular/bootstrap collapse button collapsing all elements折叠所有元素的角度/引导折叠按钮
【发布时间】:2016-03-24 22:57:56
【问题描述】:

我是 Bootstrap、Angular 和 Django 的新手,所以我会尽量讲清楚。我有几个由 django 循环动态生成的 div,每个 div 都有一个折叠按钮。我将每个按钮的数据目标设置为每个元素的动态属性 id(我使用一个 django 变量,该变量被拉入循环),但无论我按下什么按钮,所有 div 都将被折叠/展开。

{% for country in countries %}
<div class="container">
    <div class="row">
        <div class="country-panel col-xs-12" style="background:url({{ country.country_image}}) no-repeat; position: relative;">
            <div class="row">
                <div class="country-name col-xs-4 col-xs-offset-4">
                    <div class="row">
                        <div class="col-xs-12">
                            <p class="title">{{ country.name | upper }}</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="row">
            <div class="description-panel col-xs-12">
                <div class="row">
                    <p class="content">{{ country.content }}</p>
                </div>
                <div class="row">
                    {% for city in country.cities %}
                        {% if forloop.counter <= 3 %}
                            {% if forloop.counter < 3 %}
                                <a><div class="col-xs-4 city-block right" style="background:url({{city.image}}) no-repeat; position: relative; z-index: 0;">
                            {% elif forloop.counter == 3 %}
                                <a><div class="col-xs-4 city-block" style="background:url({{city.image}}) no-repeat; position: relative; z-index: 0;">
                            {% endif %}
                                    <div class="city-layer"></div>
                                    <span class="city-name">{{city.name | upper}}</span>
                                </div></a>
                        {% endif %}
                    {% endfor %}
                </div>  
                    <div class="row" uib-collapse="isCollapsed" id="{{country.name}}">
                        {% for city in country.cities %}
                            {% if forloop.counter > 3 %}
                                {% if forloop.counter|divisibleby:3 %}
                                <a><div class="col-xs-4 city-block" style="background:url({{city.image}}) no-repeat; position: relative; z-index: 0;">
                                {% else %}
                                <a><div class="col-xs-4 city-block right" style="background:url({{city.image}}) no-repeat; position: relative; z-index: 0;">
                                {% endif %}
                                    <div class="city-layer"></div>
                                    <span class="city-name">{{city.name | upper}}</span>
                                </div></a>
                            {% endif %}
                        {% endfor %}
                    </div>
                    <div class="row">
                        <div class="col-xs-12">
                            <p class="content">{{country.description}}</p>
                            <p><div class="col-xs-2 col-xs-offset-10"><a class="btn-default pink-button more-cities col-xs-12" role="button" type="button" ng-click="isCollapsed = !isCollapsed" data-target="#{{country.name}}">{% trans "MORE CITIES" %}&nbsp<span class="fa fa-plus"></span></a></div></p>
                        </div>
                    </div>
                    <div class="button-separator col-xs-12"></div>
            </div>
        </div>
    </div>
</div>
{% endfor %}

请不要说我在一两个月前就开始了 Web 开发,而且也是第一次在 stackoverflow 上发帖,所以请保持温和。

【问题讨论】:

  • 如果你能创建一个 jsfiddle 会很棒
  • 我会尽力而为,但不确定结果如何,因为库正在被 require.js 拉取,并且一些 django/python 与 html 混合 编辑:不能把它放在 jsfiddle 上,无论如何都想帮忙:)
  • 应该可以放上jsfiddle,你不需要在那里包含django方面的东西(我不认为这是django问题)只需从几个django渲染的html元素开始然后添加任何其他功能(如果可能)

标签: django twitter-bootstrap collapse


【解决方案1】:

原来我忘记在折叠 div 中传递 ng-controller,用于具有折叠功能的控制器。无论如何,感谢您的所有帮助!

【讨论】: