我是新手,对角度来说,这是很棒的,但也有令人讨厌的学习曲线。我一直反复地将头砸在墙上三个多半小时,试图找出一些问题。

我也找不到任何文档。我或者不知道要搜索什么,或者不可能了。

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="openLadders(row) ==函数说行未定义

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>


我似乎会有一个明显的后续问题,一旦我从函数openLadders获取信息到实际的LadderInstanceCtrl(),该信息就会发送出去。因此,非常感谢您对任一主题的帮助。

非常感谢。

最佳答案

您说的很对,Angular有一个学习曲线,但是一旦了解了作用域的原理,它就不会那么陡峭。

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

您所描述的内容通过以下方式解决(请注意ng-click指令):

<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>


在类似情况下,用holding传递整个ng-click="openLadders(holding)"对象可能同样方便。尝试这样做也可能很有启发性,并观察其行为。

希望这可以帮助。

08-28 04:14