迭代AngularJS中使用ng-repeat生成的元素

时间:2015-05-09 15:09:49

标签: javascript html angularjs

我的app.js:

var app = angular.module('factory', []);

app.controller('Ctrl', function($scope){
    $scope.users =[
        {name: 'jimbo', info: ''},
        {name: 'bobby', info: ''}
    ];

    $scope.addAllInfos = function(){

    };
});

我的index.html:

<!DOCTYPE html>
<html ng-app="factory">

<head>
    <script type="text/javascript" src="angular.min.js"></script>
    <script type="text/javascript" src="app.js"></script>
</head>

<body ng-controller="Ctrl">

    <div ng-repeat="user in users">
        Name: <input value="{{user.name}}"/><br>
        Tell me sth: <input/><br><br><br>
    </div>

    <button ng-click="addAllInfos()">add all infos</button>

</body>

点击&#34;添加所有信息&#34;我想通过使用ng-repeat来迭代我生成的所有用户并保存每个&#34的输入;告诉我......输入对象的info-variable。 我怎么能用Angular呢?

Fiddle

3 个答案:

答案 0 :(得分:2)

您只需要使用user.info指令将每个重复的输入绑定到ngModel

Tell me sth: <input type="text" ng-model="user.info" />

演示: https://jsfiddle.net/xsakgy6b/2/

注意,在这种情况下,addAllInfos函数可能会变得多余,因为双向数据绑定会自动为您填充user个对象。

答案 1 :(得分:1)

我认为你要找的是ng-model属性。您还应该在输入字段上使用ng-model,而不是将值放入value属性。这将允许您完全控制Angular中的双向绑定。

然后你真的不需要addAllInfos函数,Angular将跟踪转发器中每个对象的值和属性。代码看起来像这样。

Dim cmd3 = New OleDbCommand("select [Code_Zone] from [Zone] where [Nom_Zone]= '@code';", connection)
cmd3.Parameters.AddWithValue("@code", ComboBoxNomZoneDeclaration.SelectedText.ToString)
Dim valeur = cmd3.ExecuteScalar
Dim commande = New OleDbCommand("select [Code_Cable] from [CableEnFibre] where [Code_Zone]=@code1;", connection)
commande.Parameters.AddWithValue("@code1", valeur)
Dim reader = commande.ExecuteReader   'there is the exception 
While reader.Read
    ComboBoxPanneCentreAppel.Items.Add(reader.GetInt32(reader.GetOrdinal("Code_Cable")))
End While
reader.Close()

Here's my updated fiddle

答案 2 :(得分:0)

你的第一个问题是你的addAllInfos()函数。

您没有view / html可用的addAllInfos()函数。您需要通过$ scope公开函数,或者通过控制器类返回。

你可以这样做: $ scope.addAllInfos = function(){// code here};

这将允许您通过。

上的ng-click事件调用函数