Angularjs 增量连接角度模板内的字符串(即在视图中)

Angularjs 增量连接角度模板内的字符串(即在视图中),angularjs,angularjs-ng-repeat,string-concatenation,Angularjs,Angularjs Ng Repeat,String Concatenation,在ng repeat中,我试图向变量添加一点文本 我这样做的真正原因是,我有一个递归模板,我想不断地添加到同一个变量中。但我在这里创建了一个简单的示例来演示我遇到的部分问题,希望它能帮助我解决其他问题 我希望屏幕能打印出所有的数字,每个数字后面都有一个“b”,比如 1b 2b 3b ... 相反,它会打印出来 1bbbbbbbbbbb 2bbbbbbbbbbb 3bbbbbbbbbbb ... 为什么? 以下是我的JSFIDLE: 为什么? 因为默认情况下数据绑定就是这样工作的:每次num变

在ng repeat中,我试图向变量添加一点文本

我这样做的真正原因是,我有一个递归模板,我想不断地添加到同一个变量中。但我在这里创建了一个简单的示例来演示我遇到的部分问题,希望它能帮助我解决其他问题

我希望屏幕能打印出所有的数字,每个数字后面都有一个“b”,比如

1b
2b
3b
...
相反,它会打印出来

1bbbbbbbbbbb
2bbbbbbbbbbb
3bbbbbbbbbbb
...
为什么?

以下是我的JSFIDLE:

为什么?

因为默认情况下数据绑定就是这样工作的:每次num变量的值更改时,表达式都会重新计算—一次又一次地更改num。最终它停止了;如果您检查了控制台,您会看到大量的“10$digest迭代次数已达到”错误。这就是为什么每行正好印上10B

如果您希望在每个步骤中打印相同数量的b,则很容易解决此问题:

<div ng-app="App" ng-controller="ctrl">
   <div ng-repeat="num in [1, 2, 3, 4, 5, 6] track by $index">
      <label>{{num + 'b'}}</label>
   </div>
</div>

为什么?

因为默认情况下数据绑定就是这样工作的:每次num变量的值更改时,表达式都会重新计算—一次又一次地更改num。最终它停止了;如果您检查了控制台,您会看到大量的“10$digest迭代次数已达到”错误。这就是为什么每行正好印上10B

如果您希望在每个步骤中打印相同数量的b,则很容易解决此问题:

<div ng-app="App" ng-controller="ctrl">
   <div ng-repeat="num in [1, 2, 3, 4, 5, 6] track by $index">
      <label>{{num + 'b'}}</label>
   </div>
</div>
.

带{num=num+'b'

您正在更新以前迭代的num引用,并且每次都将“b”添加到每个引用,它会得到如下更新

1+b=>1b+b=>1bb+b,依此类推

2+b=>2b+b=>2bb+b,依此类推

所以不要赋值,只要加上b,就像

(num+'b')
演示

var App=角度。模数App,[]; 应用程序控制器TRL,功能$scope{ $scope.myNum=0; }; {{num+'b'} 使用{num=num+'b'

您正在更新以前迭代的num引用,并且每次都将“b”添加到每个引用,它会得到如下更新

1+b=>1b+b=>1bb+b,依此类推

2+b=>2b+b=>2bb+b,依此类推

所以不要赋值,只要加上b,就像

(num+'b')
演示

var App=角度。模数App,[]; 应用程序控制器TRL,功能$scope{ $scope.myNum=0; }; {{num+'b'}
不幸的是,对于我所困惑的问题,我并没有以最好的方式问它。我在这里重新问了一遍:你问得很好,但你没有真正检查我的答案。正如你所看到的,这里有相同的方法:在控制器内移动递归。我做递归的方法是使用ng include调用模板并调用它不幸的是,我并没有以最好的方式问它我所困惑的事情。我在这里重新问了一遍:你问得很好,但你没有真正检查我的答案。正如你所看到的,这里有相同的方法:在控制器内移动递归。我做递归的方法是使用ng inc.调用模板不幸的是,我没有用最好的方式问我所困惑的事情。我在这里重新问了一遍:是的,你做了一个很好的单独的问题,因为这里不是obvoius让我看看那里:@imray不幸的是,我没有用最好的方式问我所困惑的事情。我在这里重新问了一遍:y你做了一个很好的单独的问题,因为这里不是obvoius让我看看那里:@Imray