我是新手,对角度来说,这是很棒的,但也有令人讨厌的学习曲线。我一直反复地将头砸在墙上三个多半小时,试图找出一些问题。
我也找不到任何文档。我或者不知道要搜索什么,或者不可能了。
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)"
对象可能同样方便。尝试这样做也可能很有启发性,并观察其行为。希望这可以帮助。