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

如何在ng-repeat中将Input值传递给ng-change函数?

在ng-repeat中传递Input值到ng-change函数的解决方案

别着急,我来帮你搞定这个问题!在AngularJS的ng-repeat循环里,要把input的rate值传递给ng-change绑定的函数,其实有几种很直接的可行方案,我给你详细说明:

方案1:直接在ng-change中传递目标值/当前项

你可以直接在ng-change的调用语句里,把需要的rate值或者整个product对象传进去,这样函数就能直接拿到对应的数据了。

示例代码:

HTML部分

<div ng-repeat="product in products">
  <input 
    type="number" 
    ng-model="product.rate" 
    ng-change="handleRateChange(product.rate, product.id)"
    placeholder="输入评分"
  >
</div>

控制器部分

angular.module('yourApp', [])
.controller('YourController', function($scope) {
  $scope.products = [/* 你的产品数据 */];
  
  $scope.handleRateChange = function(rate, productId) {
    console.log(`产品${productId}的最新评分:`, rate);
    // 这里写你的业务逻辑
  };
});

方案2:利用ng-model的双向绑定,传递整个product对象

因为ng-model已经和product.rate做了双向绑定,所以你也可以直接把整个product对象传给ng-change函数,在函数内部直接访问product.rate就能拿到最新值,这种方式更灵活,后续如果需要用到产品的其他属性也很方便。

示例代码:

HTML部分

<div ng-repeat="product in products">
  <input 
    type="number" 
    ng-model="product.rate" 
    ng-change="updateProductRate(product)"
    placeholder="输入评分"
  >
</div>

控制器部分

angular.module('yourApp', [])
.controller('YourController', function($scope) {
  $scope.products = [/* 你的产品数据 */];
  
  $scope.updateProductRate = function(product) {
    console.log(`产品${product.name}的最新评分:`, product.rate);
    // 执行你的更新逻辑,比如调用接口保存数据等
  };
});

注意事项

  • 确保你的product.rate已经被正确初始化(比如初始值设为0或者空字符串),避免出现undefined的情况;
  • 如果是通过JS动态获取的rate值,要确保这个值已经被赋值到对应的product.rate属性上,这样ng-model才能正确绑定;
  • 别忘记在控制器中定义好ng-change对应的函数,否则会触发AngularJS的错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:58:45