Javascript 将表行传递给函数

Javascript 将表行传递给函数,javascript,angularjs,Javascript,Angularjs,我对angular非常陌生,有人告诉我它的伟大之处,但也有人告诉我它令人烦恼的高学习曲线。在过去的半个小时里,我一直在不断地把头撞在墙上,想弄明白些什么 我也找不到关于它的任何文档。我要么不知道该搜索什么,要么就不可能了 function modalCtrl($scope, $modal) { $scope.openManageMainCd = function() { var modalInstance = $modal.open({ temp

我对angular非常陌生,有人告诉我它的伟大之处,但也有人告诉我它令人烦恼的高学习曲线。在过去的半个小时里,我一直在不断地把头撞在墙上,想弄明白些什么

我也找不到关于它的任何文档。我要么不知道该搜索什么,要么就不可能了

function modalCtrl($scope, $modal) {

    $scope.openManageMainCd = function() {
        var modalInstance = $modal.open({
            templateUrl: 'views/modalManageMainCd.html',
            controller: ModalInstanceCtrl
        });
    };
    $scope.openLadders = function(e) {

        alert(e);
        var modalInstance = $modal.open({
            templateUrl: 'views/ladderModal.html',
            controller: LadderInstanceCtrl
        });
    };
};    

function LadderInstanceCtrl($scope) {
    $scope.ladder = GetLadderData(_facilityData.holdings);
};

function GetLadderData(holdings){
    var holdingData = [];

    angular.forEach(holdings, function(value, key) {
        if (value.type == 'Ladder') {
             angular.forEach(value.cds, function(value, key) {
                var obj = { type: value.type, name: value.name, amount: value.amount, rate: value.rate, maturityDate: value.maturityDate }
                holdingData.push(obj);
             });
        }
    });
    return holdingData;
};            
这一大堆乱七八糟的东西是我用时间创造出来的。单击“我的表格”上的一行时,它将调用
openLadders
函数。现在,我试着把所有的东西都放在阳光下,但到目前为止都没有用。我想把它基本上发送到这一行。我需要一个排的ID,我只想要那个ID。我已经试过了

ng click=“Open梯形图(行)
==函数表示行未定义

ng click=“openLadders($event)
==我不知道我在看什么

ng click=“openLadders($index)
==对我没有帮助

还有更多。Angular的网站没有详细介绍我需要知道的内容,因此我无法在那里找到帮助。我在网站上浏览了Angular的两个教程,这让我相信这是可能的

有人能帮我一点忙吗?我太迷路了

表的构建方式如下所示:

<tr ng-repeat="holding in holdings" ng-if="holding.type == 'Ladder'" class="" ng-controller="modalCtrl" ng-click="openLadders()">
    <td><i class="icon-plus" ></i> {{holding.type}}</td>
    <td contenteditable="true">{{holding.name}}</td>
    <td>{{holding.maturityDate}}</td>
    <td>{{holding.amount | currency:"$"}}</td>
    <td>{{holding.rate | percentage:2}}</td>
</tr>

{{holding.type}
{{holding.name}
{{持有.到期日}
{{holding.amount}货币:“$”}
{{持有率|百分比:2}
我将有一个明显的后续问题,即一旦我从函数
openLadders
中获得信息,就会将该信息发送到实际的
LadderInstanceCtrl()
。因此,非常感谢您在这两个主题上提供帮助


非常感谢。

你说得对,Angular有一条学习曲线,但一旦你了解了范围界定的工作原理,它就不会那么陡峭了

您非常接近您想要的内容,只需要将所需的确切字段作为参数传递给函数,这可能感觉与纯javascript有点不同

您所描述的问题通过(注意
ng click
指令)解决:


{{holding.type}
{{holding.name}
{{持有.到期日}
{{holding.amount}货币:“$”}
{{持有率|百分比:2}
在类似的情况下,使用
ng click=“opengraddes(holding)”
传递整个
holding
对象可能同样方便。尝试此操作并查看行为可能会有所帮助


希望这有帮助。

您介意在问题中添加有关如何生成表的详细信息吗?可能有助于查看表的生成方式,以查看它来自什么
$scope
项以及什么是可用的。添加了它!@h7r让我知道我是否正确理解该帮助存在一个字段
保存.id
,您希望传递给
openLadders
?是的。这是100%正确的。@h7rng click=“openLadders(holding.id)”哦,天哪……你太棒了……我发誓我试过{{{holding.id}},但从来没有试过只拿.id。我觉得自己太笨了。不过一步一步。基本上是
{}
为输出执行插值,内容由角度解释。在
ng click指令(或任何其他指令)中,不需要插值,因为变量(来自$scope)都可以直接使用。我很高兴它有帮助。
<tr ng-repeat="holding in holdings" ng-if="holding.type == 'Ladder'" class="" ng-controller="modalCtrl" ng-click="openLadders(holding.id)">
    <td><i class="icon-plus" ></i> {{holding.type}}</td>
    <td contenteditable="true">{{holding.name}}</td>
    <td>{{holding.maturityDate}}</td>
    <td>{{holding.amount | currency:"$"}}</td>
    <td>{{holding.rate | percentage:2}}</td>
</tr>