Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将角度ng重复与ng栅格和ng单击一起使用?_Javascript_Angularjs_Angularjs Scope_Angularjs Ng Repeat_Angular Ngmodel - Fatal编程技术网

Javascript 如何将角度ng重复与ng栅格和ng单击一起使用?

Javascript 如何将角度ng重复与ng栅格和ng单击一起使用?,javascript,angularjs,angularjs-scope,angularjs-ng-repeat,angular-ngmodel,Javascript,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Angular Ngmodel,单击cellTemplate ng后,使用ng repeat填充表时遇到问题 cellTemplate: '<div ng-click="foo()" ng-bind="row.getProperty(col.field)"></div>' $scope.source在此处定义 angular.forEach($scope.items, function (item) { if(item.fname === entere

单击cellTemplate ng后,使用ng repeat填充表时遇到问题

 cellTemplate: '<div  ng-click="foo()" ng-bind="row.getProperty(col.field)"></div>'
$scope.source在此处定义

   angular.forEach($scope.items, function (item) {
                    if(item.fname === enteredValue.firstName ){
                        arrItem.push({
                            first: item.fname,
                            last: item.lname,
                            address: item.address,
                            phone: item.phone

                        });
                    }
                });
                $scope.source= arrItem;
html

 <tr data-ng-repeat="ngClickResult in ngClickResults">
 <td>First Name:{{showNgClick.firstName}}</td>
 <td>Last Name:{{showNgClick.lastName}}</td>
 <td>Address:{{showNgClick.address}}</td>
 <td>Phone:{{showNgClick.phone}}</td></tr>

名字:{{showNgClick.firstName}
姓氏:{{showNgClick.lastName}
地址:{showNgClick.Address}
电话:{{showNgClick.Phone}
有些东西告诉我这是我的结果/来源。我错过了什么

这是

搜索Tim以启动搜索

我的目标是用NG网格中显示的数据填充NG Click Results下的表。我想在NG Click Results下显示名字、姓氏、地址和电话。我希望ng单击以列出与网格中所选行关联的所有数据。例如:单击第一行,显示第一行的数据。单击第二行,显示第二行数据,等等。

有几件事

首先在您的cellTemplate中,您有对foo的调用,但您没有传递任何内容以用作您单击的行的引用。我建议将row对象传递到foo中,这样您就可以通过row.entity引用数据

cellTemplate: '<div  ng-click="foo(row)" ng-bind="row.getProperty(col.field)"></div>'
最后,在html中,ng repeat似乎定义了变量ngClickResult,但在下面的td定义中没有使用它。如果不使用ng repeat变量(ngClickResult),您最终会对ngClickResults集合中的每个项目重复相同的对象。在td中,您还引用了showNgClick的firstName和lastName属性,但这些属性在json中定义为fname/lname,在网格行对象中定义为first和last

<tr data-ng-repeat="(key, ngClickResult) in ngClickResults">

        <td>First Name:{{ngClickResult.first}}</td>

        <td>Last Name:{{ngClickResult.last}}</td>

        <td>Address:{{ngClickResult.address}}</td>

        <td>Phone:{{ngClickResult.phone}}</td>
</tr>

名字:{{ngClickResult.First}
姓氏:{{ngClickResult.Last}
地址:{ngClickResult.Address}
电话:{{ngClickResult.Phone}
我在下面的plunker中做了一些更改。当您单击一行时,它应该在网格下方的表中创建一行

请注意,我意识到有一个错误,网格不是每次单击都调用foo,所以有时它会突出显示一行,而不是从所选行的映射中添加或删除该项


希望这有帮助

我认为你正朝着正确的方向前进,但这里的最终目标还不清楚。您希望网格做什么?您想让它列出您在网格中选择的所有行吗?ng click与这些有什么关系?您是否正在尝试创建“可点击”项目的表格?您还没有明确说明您的问题所在。谢谢您的反馈。对不起,我说的模棱两可。问题已更新。因此,每当用户单击另一行时,您都会将该选择添加到底部的表中?是的。这就是我想要达到的目标。只是为了补充这个答案。他最好使用ng grid在3.0中提供的内置行选择。谢谢Brandon和KreepN。碰巧你知道为什么我的setPagingData函数没有正常响应吗?项目总数正确,但页面大小不正确。每页应该只有5个。
$scope.ngClickResults = {};

$scope.foo = function(row) {
  //check if row is already selected if it is unselect else add row
  if (!$scope.ngClickResults[row.rowIndex]) {
    $scope.ngClickResults[row.rowIndex] = row.entity;
  } else {
    delete $scope.ngClickResults[row.rowIndex];
  }
};
<tr data-ng-repeat="(key, ngClickResult) in ngClickResults">

        <td>First Name:{{ngClickResult.first}}</td>

        <td>Last Name:{{ngClickResult.last}}</td>

        <td>Address:{{ngClickResult.address}}</td>

        <td>Phone:{{ngClickResult.phone}}</td>
</tr>