javascript - 在 ng-repeat 表中插入一个独立的范围变量值

标签 javascript angularjs

我的表格如下

<tr ng-repeat-start="x in referral">
 <td>{{x.id}}</td>
 <td>{{x.name}}</td>
 <td>{{x.region}}</td>
 <td><button data-ng-click="request(x.id)">Request Info</button></td>
 <td><span>{{x.upload_msg}}</span></td>
</tr>

代码如下:

referral.list($scope.user_id).then(function(response){
   $scope.referral=response.data.data;
   for (i=0;i< ($scope.referral).length; i++){
     $scope.referral[i].upload_msg="";
   }
});

最后一列最初是空的。 现在当有人点击按钮时,它会检查是否满足某个条件并使用 JS 中的以下函数显示消息

$scope.request=function(id){
 data={"user_id":id};
 referral.request(data).then(function(response){
   console.log(response);
   $scope.upload_msg=response.data;
 });
}

功能很好,除了当我检查表中一行的状态时,它会在所有行中显示上传消息的值。我理解它是因为我在表中插入了一个范围变量。

恐怕我不知道如何单独显示每行的 upload_msg 值。

我们将不胜感激。

最佳答案

想法是将整个 x 对象传递给您的 request 方法,并相应地更新它。

$scope.request=function(x){
 data={"user_id":x.id};
 referral.request(data).then(function(response){
   console.log(response);
   x.upload_msg=response.data;
 });
}

您的 $scope.upload_msg 属性是为整个 Controller 定义的,而不仅仅是表中的一行。因此,当您更新了 $scope.upload_msg 属性时,它会针对您表中的每一行进行更新。使用 x.upload_msg,每行都有一个属性。

关于javascript - 在 ng-repeat 表中插入一个独立的范围变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42900464/

相关文章:

Javascript 克隆和循环问题

javascript - Firebase Web - currentUser 返回 null

javascript - 当另一个下拉菜单打开时,angularjs 下拉菜单不会关闭

javascript - Angular - 如何从 promise 中访问对象

javascript - 在 ag-grid 更新后保留过滤器

javascript - 每次保存文档时,换行符和段落都会增加一倍 ckeditor 在每次保存后添加额外的空格段落和换行符

javascript - 禁用 Fengyuanchen Datepicker jQuery 插件中的特定日期

javascript - 哟发电机子发电机不可用。当进行 NPM 安装时,它不会拉取所有代码

javascript - Angular ng-show 不反射(reflect)变量的更改

angularjs - 使用 yo Angular 脚手架时无法获取/