javascript - 如何让表单向同一页面上的 ng-repeat 列表项提交值?

标签 javascript angularjs jquery-ui angularjs-ng-repeat smartystreets

我昨天将此作为另一个问题的一部分提出,但我认为最好将其分解为自己的问题。

我有一个注册表单,要求用户提供姓名、地址、电子邮件等。作为返回,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/

相关文章:

javascript - 多个文本框输入验证检查

javascript - history.back 仅当引荐来源相同的网站

angularjs - 如何在整个应用程序中以 Angular 2 保存来自多个服务的数据?

javascript - 选择未使用 ng-model 选择正确的选项

javascript - jQuery UI 可选 : get the text of the selected item

javascript - 无法多次打开 jQuery UI 对话框 - 包含测试用例

javascript - 表排序器分页使表行不可点击

javascript - 使用 javascript 和 php 分解 JSON 字符串并将值输入到 MYSQL

JavaScript - 调用堆栈究竟何时变为 "empty"?

javascript - 缺少内容类型 Ajax json