You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS循环内绑定输入框:如何获取修改后的country值?

AngularJS获取ng-repeat输入框修改后的值

你当前的问题出在绑定方式上:使用value="{{country.name}}"属于单向插值绑定,输入框的内容修改不会同步回country对象,因此saveCountryName方法中拿到的始终是原始数据。

修正方案

将输入框的value属性替换为AngularJS的双向绑定指令ng-model,这样输入框的内容会实时同步到country.name上,触发ng-blur时就能拿到修改后的数值。

修正后的HTML代码

<div ng-repeat="country in countries">
  <input ng-blur="saveCountryName(country)" type="text" ng-model="country.name">
</div>

控制器代码(无需修改)

$scope.saveCountryName = (country) => {
  console.log(country); // 此时输出的是修改后的country对象
}

原理说明

ng-model是AngularJS核心的双向绑定指令,它会建立输入框与country.name之间的数据同步通道:用户修改输入框内容时,country.name会自动更新;反之,country.name变化时输入框内容也会同步刷新。当ng-blur事件触发时,country对象已经包含了最新的修改值,因此能正确获取到更新后的内容。

内容的提问来源于stack exchange,提问作者user3174311

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:56:09