当前位置: 首页 > 面试题库 >

在AngularJS模板中递增变量

楚方伟
2023-03-14
问题内容

首先,我会说我对AngularJS很陌生,所以如果我的心态还差得远,请原谅我。我正在使用AngularJS编写一个非常简单的单页报告应用程序,当然,肉和土豆也使用了角度模板系统来自己生成报告。我有许多报告要从类似Jinja的语法转换过来,并且很难复制任何类型的计数器或运行制表功能。

例如

{% set count = 1 %}
{% for i in p %}
  {{ count }}
  {% set count = count + 1 %}
{% endfor %}

在我的控制器中,我定义了一个变量,这样$scope.total = 0;我就可以毫无问题地访问模板内部。我还不太清楚是如何total从一个ng- repeat元素中增加它的。我想这看起来像-

<ul>
    <li ng-repeat="foo in bar">
        {{ foo.baz }} - {{ total = total + foo.baz }}
    </li>
</ul>
<div> {{ total }} </div>

这显然是行不通的,也不是类似的东西{{ total + foo.baz}},在此先感谢您的任何建议。


问题答案:

如果您想要的只是一个 计数器 (按照您的第一个代码示例),请查看$
index,该索引包含包含的ngRepeat中的当前(从0开始)索引。然后只显示总数的数组长度。

<ul>
    <li ng-repeat="item in items">
        Item number: {{$index + 1}}
    </li>
</ul>
<div>{{items.length}} Items</div>

如果要在重复的项目中 总计一个特定字段 (例如价格),则可以使用过滤器执行此操作,如下所示。

<ul>
    <li ng-repeat="item in items">
        Price: {{item.price}}
    </li>
</ul>
<div>Total Price: {{items | totalPrice}}</div>

和过滤功能:

app.filter("totalPrice", function() {
  return function(items) {
    var total = 0, i = 0;
    for (i = 0; i < items.length; i++) total += items[i].price;
    return total;
  }
});

或者,为了 提高可重用性 ,可以使用通用的 过滤器功能:

  app.filter("total", function() {
    return function(items, field) {
      var total = 0, i = 0;
      for (i = 0; i < items.length; i++) total += items[i][field];
      return total;
    }
  });

可以这样使用:

<div>Total price: {{items | total:'price'}}</div>


 类似资料:
  • 问题内容: 我有一个创建输入字段的指令。我需要将此输入字段的ng-model属性设置为$ rootScope变量的值。这背后的原因是我希望输入字段位于布局中,并根据加载的页面绑定到不同的模型。我以为我会在每个控制器中设置此全局变量,然后在指令中对其进行访问。 ATM变量是硬编码的 和指令 它被渲染为 输入字段中的文本是mymodel变量的值。console.log显示 任何人都可以在这个问题上阐明

  • 问题内容: 好吧,对于我正在做的事情,我需要增加变量名称,例如,int Taco1 = 23432 ..... int Taco2 = 234235656 ..... int Taco3 = 11111 ....... 但是我需要它是一个像 尝试让我的变量名每次自动递增1,这样它们就不会覆盖自己。如果这不可能,那么我深表歉意。 问题答案: 您不能用Java做到这一点,更重要的是,您不想这样做,因为

  • 问题内容: 我想做类似的事情: 变量p来自test.py,它是一个列表[‘a’,’b’,’c’,’d’] 结果输出是: 1 2 3 4 问题答案: 您可以使用: 检查模板设计器文档。 在最近的版本中,由于作用域规则,下面的 不 工作:

  • 正如我们已经描述过的,模板可以使用在数据模型中定义的变量。 在数据模型之外,模板本身也可以定义变量来使用。 这些临时变量可以使用FTL指令来创建和替换。请注意每一次的 模板执行 工作都维护它自己的私有变量, 同时来渲染页面。变量的初始值是空,当模板执行工作结束这些变量便被销毁了。 可以访问一个在模板里定义的变量,就像是访问数据模型根root上的变量一样。 这个变量比定义在数据模型中的同名参数有更高

  • 问题内容: 我想加载一个内联视图模板。 我将模板包装在类型为的脚本标签中,并将ID设置为。这是我的模块配置 它在控制台窗口中告诉我,这意味着它正在寻找该名称的文件。 我的问题是:如何配置路由以使用嵌入式模板? 更新:这是我的服务器渲染的DOM的样子 问题答案: Ody,您的方向正确,唯一的问题是标记位于使用指令的DOM元素 之外。如果将其移至元素,则内联模板应该可以使用。

  • 是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试。 一个应用的代码架构有很多种。对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模式解耦代码和分离关注点。考虑到这一点,我们用AngularJS来为我们的应用添加一些模型、视图和控制器。 请重置工作目录: git checkout -f step-2 我们的应用现在有了一个包含三部