javascript - AngularJS "accordion"使用 ng-click 加载和卸载 DOM 元素

标签 javascript jquery angularjs

我的页面有多个类别,内容存储在 JSON 文件中。页面加载时,类别没有内容。单击类别标题时,将加载其内容。当再次单击它或单击另一个类别时,其内容应被删除。

在我当前的草图上 (Plunkr) ng-click 上的内容加载有效,但所有类别都填充了单击类别的内容。我这样调用它:

  <div ng-controller="FoodCtrl">
    <h3 ng-click="loadFood('food1')">Food 1</h3>

       <div class="food origin">
              <food-list />
       </div>

    <h3 ng-click="loadFood('food2')">Food 2</h3>

          <div class="food origin">
               <food-list />
          </div>

  </div>

据我所知,问题是我没有限制加载到 <food-list /> 中的内容的范围。 ,因此两个列表获得相同的内容。我怎样才能重组它,以便 <food-list />有“当前事件类别”的上下文吗? “切换”功能( like this JSFiddle )对此效果更好吗?

最佳答案

AngularJS 新手用户使用 Controller 中已有的变量 category 发现了 ng-show 的魔力:

  <div ng-controller="FoodCtrl">
     <h3 ng-click="loadFood('food1')">Food 1</h3>

     <div class="food origin">
        <food-list ng-show="category == 'food1' "  />
     </div>

    <h3 ng-click="loadFood('food2')">Food 2</h3>

    <div class="food origin">
         <food-list  ng-show="category == 'food2' " />
    </div>

  </div>

关于javascript - AngularJS "accordion"使用 ng-click 加载和卸载 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19709253/

相关文章:

javascript - jQuery 最接近的方法不起作用

jquery - 像这个示例网站上那样实现略圆 Angular 的最简单方法是什么?

javascript - 使用 Angular 映射 JSON 数据模型

javascript - 输入标签上的 aria-label 无法读取 Android chrome

php - 406 和 404 错误 - 仅 Firefox 有问题?

Jquery删除样式

javascript - 基本(本地)HTML 不加载图像或 js 但加载 css

javascript - 在 Controller 外部创建 Angular 模态

javascript - 令人困惑的 webpack 语法。尝试修复 2017 年旧教程中的 webpack.config 文件

javascript - 如何动态地在 Owl Carousel 中创建新的幻灯片元素