簡體   English   中英

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

[英]Iterate through elements generated with ng-repeat in 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>

當點擊“添加所有信息”時,我想通過使用ng-repeat迭代我生成的所有用戶,並在對象的info-variable中保存每個“告訴我”輸入的輸入。 我怎么能用Angular這樣做?

小提琴

您只需要使用ngModel指令將每個重復的輸入綁定到user.info

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

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

請注意,在這種情況下, addAllInfos函數可能會變得多余,因為雙向數據綁定會自動為您填充user對象。

我認為你要找的是ng-model屬性。 您還應該在輸入字段上使用ng-model,而不是將值放入value屬性。 這將允許您完全控制Angular中的雙向綁定。

那么你真的不需要addAllInfos函數,Angular將跟蹤轉發器中每個對象的值和屬性。 代碼看起來像這樣。

<div ng-repeat="user in users">
    Name: <input type="text" ng-model="user.name"/><br>
    Tell me sth: <input type="text" ng-model="user.info"/><br><br><br>
</div>

這是我最新的小提琴

你的第一個問題是你的addAllInfos()函數。

您沒有view / html可用的addAllInfos()函數。 您需要通過$ scope公開函數,或者通過控制器類返回。

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

這將允許您通過您的ng-click事件調用函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM