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