我昨天将此作为另一个问题的一部分提出,但我认为最好将其分解为自己的问题。
我有一个注册表单,要求用户提供姓名、地址、电子邮件等。作为返回,smartystreets API 会返回建议的地址,以更正可能输入错误的地址。我所拥有的(全部在一页上)是 1) 注册表和 2) 我想用返回的地址填充的隐藏列表项(通过 ng-repeat),最终将通过 Jquery UI 作为弹出窗口隐藏.
因此,主要问题是如何通过 ng-repeat 填充列表项,因为注册页面是在任何数据填充列表项之前加载的。
当数据已经存在时,我已经使用 ng-repeat 来填充 li,但是当数据将在页面加载后传递时,我对在这种情况下该怎么做感到困惑。
最佳答案
只需在 ng-repeat
中使用您的数组,就像您在任何其他数组中一样。我更喜欢先在 Controller 中定义它,然后才知道有一些东西但是 Angular 也可以为您处理。
<li ng-repeat="address in addresses">
正如评论中已经提到的那样,angular 会监视您的 ng-repeat
项目中的更改,以便在您更改它时更新它。例如,当您运行 ajax 请求时:
$http({method: 'GET', url: '/api/smartystreets/whatever'}).success(function(addresses) {
$scope.addresses = addresses;
});
实际上,数据是否已准备就绪并不重要,异步操作是在页面加载时或稍后使用 ng-change
或其他任何方式启动的。
这是 Angular 的优势之一,two way databinding .您需要做更多工作的唯一一点是当您使用任何未被 Angular “覆盖”的异步事件时,因此需要您使用 $apply
自己运行摘要循环。 .
关于javascript - 如何让表单向同一页面上的 ng-repeat 列表项提交值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23184746/