例如考虑这个Plnkr。我不知道fooCollection
将事先创建多少个成员。所以我不知道bar
会有多少种模型。
但是我知道它们将成为角度模型,而且我知道它们将在哪里。
我该如何$watch
处理这些?
我需要这样做,因为我需要在bar
更改模型时触发行为。仅仅观察fooCollection本身是不够的,更改$watch
a时侦听器不会触发bar
。
相关HTML:
<body ng-controller="testCtrl">
<div ng-repeat="(fooKey, foo) in fooCollection">
Tell me your name: <input ng-model="foo.bar">
<br />
Hello, my name is {{ foo.bar }}
</div>
<button ng-click="fooCollection.push([])">Add a Namer</button>
</body>
相关JS:
angular
.module('testApp', [])
.controller('testCtrl', function ($scope) {
$scope.fooCollection = [];
$scope.$watch('fooCollection', function (oldValue, newValue) {
if (newValue != oldValue)
console.log(oldValue, newValue);
});
});
创建单独的列表项控制器:Plnkr上的演示
angular
.module('testApp', [])
.controller('testCtrl', function ($scope) {
$scope.fooCollection = [];
})
.controller('fooCtrl', function ($scope) {
$scope.$watch('foo.bar', function (newValue, oldValue) {
console.log('watch fired, new value: ' + newValue);
});
});
<html ng-app="testApp">
<body ng-controller="testCtrl">
<div ng-repeat="(fooKey, foo) in fooCollection" ng-controller="fooCtrl">
Tell me your name: <input ng-model="foo.bar" ng-change="doSomething()">
<br />
Hello, my name is {{ foo.bar }}
</div>
<button ng-click="fooCollection.push([])">Add a Namer</button>
</body>
</html>
问题内容: 我知道AngularJS在ng-repeat上设置了一些监视。此时设置了哪种手表? 另外,有人可以解释在每种情况下会发生什么吗?我想知道我有很多物品,所以如果我用其他方式写的话,不会被那些本可以淘汰的手表所困扰。 之一 二 三 四个 问题答案: 每个人都会在上设置一个$ watch 。(如果您查看ng- repeat源代码 ,则其中大多数是$ watch方法的watchExpressi
问题内容: 我正在尝试使用bootstrap 3和angularjs创建一个网格。 我要创建的网格就是这个,使用ng-repeat重复进行。 我试着用with 添加行,但这似乎行不通。任何建议都会很棒! 谢谢! 编辑:这是我最终使用的代码: 问题答案: 这是一个老答案! 撰写本文时,我对Angular还是有点陌生。Shivam下面有一个更好的答案,我建议您改用它。它使表示逻辑不会进入您的控制器
问题内容: 我有一个使用ng- repeat创建的表。我想向表中的每个元素添加验证。问题在于每个输入单元格与其上方和下方的单元格名称相同。我试图使用该值来命名输入,但是尽管HTML中的字符串文字看起来正确,但现在可以正常工作。 到目前为止,这是我的代码: 我试过从索引中删除from,但是那也不行。到目前为止,输入的验证属性可以正常工作,但是不会显示错误消息。 有人有什么建议吗? 编辑: 除了以下出
问题内容: 我剖析了ng-repeat并提取了附加的代码块,看到它们包含处理 重复 算法的逻辑(我想了解它的工作原理)。 我有很多问题,但是由于它们都是关于ng- repeat的内部结构,因此我选择在这里全部询问。我看不出有任何理由将它们分为不同的SO问题。我已标记内联每个问题所指向的代码行。 为什么他们需要确保这不是本机函数?(这就是该功能的作用,是Angular内部API的一部分) 就我的直觉
问题内容: 我试图了解over 的意义。角度文档提供了以下示例 但是,使用, 有人可以解释。的意义吗?谢谢。 问题答案: 这两个指令的含义相似:它们重复HTML标记。所不同的只是,在您的帮助下,您可以重复几个标签,从标签开始于,再到完成于。 例如,您有下一个代码: 因此,现在我们可以为这些代码添加2个指令。 与: 与和: 因此,现在您可以看到,在第一种情况下,仅使用指令重复,但是在第二种情况下,您
问题内容: 我想在由两个数组组成的数组上执行ng-repeat,如下所示: 我的数组(标题和链接)具有相同的长度,最后我想在ng-repeat中打印的内容是这样的: 例如,在C程序中,我必须这样做: 问题答案: 尚不清楚您如何拥有数据- 没有意义。 理想情况下,您可以将数据排列为如下所示的对象数组: 然后,您可以使用: 如果您 知道 标题和链接的大小始终相同,则可以这样做,但是它不是很漂亮,并且可