angular输出数组内容到HTML,关于html:在angularjs中获取数组的父索引

我在控制器内部有scope.students数组。 数据在表中使用ng-repeat显示在我的视图表单中。 我现在想做的是单击按钮时,它应该警告特定对象的父索引。 例如,我单击1 Brick Med的按钮,则应该警告0,因为他在A区。然后,当我单击3中的按钮时,它应该警告1,因为他在B区。 我真的是angularjs的新手,任何帮助都是数百万个感谢,谢谢

var stud = angular.module("stud", []);

stud.controller("StudentsController", function ($scope) {

'use strict';

$scope.alertMe = function (key){

alert(0);

};

$scope.sectionA = [

{

no:1,

name:'Brick Med',

},

{

no:2,

name: 'Colin Christopher',

},

];

$scope.sectionB = [

{

no:3,

name: 'Frank Joemar Timbang',

},

{

no:4,

name: 'Curtis Zaymond',

}

];

$scope.students = [

$scope.sectionA,

$scope.sectionB

];

});

Tally Boxes

StudentsAlert

{{value.no}} {{value.name}}Alert me!{{value.no}} {{value.name}}Alert me!

我不知道这是否是您的最终代码,但是您已经对students索引进行了硬编码,因此当您调用alertMe时,您已经知道索引是0还是1。

是的,但是当我单击"提醒我"按钮时,它应该显示其父级索引是什么。一世

您已经像students[0]那样对其进行了编码,因此您知道它将变为0,因此只需传递0(分别传递其他索引)即可?

您好,PSL。我如何将0传递给控制器??,我之前曾尝试过,但不知道如何传递。你能指导我吗?

好的,我编辑了代码,并在$ scope.alertMe()中添加了alert,但是当我单击按钮时,它们都警报0,这是我的错误:-(

我不说警报(0)是吗? :D我说ng-click="alertMe(0)"和ng-click="alertMe(1)"并在您的控制器方法中执行alert(key)

@PSL表示您在html中传递了

警告我! button> td>,对于js中的alertMe功能,您只需要alert(key),为什么不您将json更改为一个数组?

@huanfeng您可以帮我怎样将json更改为一个数组吗?

您的ng-repeat有点混乱,但是我想这就是您想要做的:

{{student.no}} {{student.name}}Alert me!

请注意,(key, value)用于迭代对象的属性,而students是数组。

对于$parent.$index,请参阅子ng-repeat的父ng-repeat的访问索引

对于tbody ng-repeat,请参阅如何在没有html元素的情况下使用ng-repeat

通过将ng-click更改为alertMe(studentGroup),将$scope.alertMe更改为$parent.$index,可以避免使用$parent.$index

$scope.alertMe = function (studentGroup) {

alert($scope.students.indexOf(studentGroup));

};

但这取决于您的最终用途。

非常感谢@David Williams。您的答案就是我所需要的。

如果我只想在表中显示sectionA,又想再次单击"提醒我"按钮,它仍应提醒其父索引怎么办?

这实际上取决于如何扩展。对于该特定方案,可以将ng-show="$first"添加到tbody,但这假定您只想显示sectionA。更好的方法是将SectionA和SectionB转换为对象,并使用一个名为show的属性和另一个名为students的属性。然后添加ng-show="studentGroup.show"并更新内部的ng-repeat以使用studentGroup.students。

天哪,我认为这很艰难。我将尝试将它们转换为对象。谢谢您的帮助。

我已经在对象中转换了A节和B节。 jsfiddle.net/e4toyd6j

该代码不适用于我的代码。我想念什么吗?

您的小提琴缺少javascript。

是的,看起来不错。如果它不起作用,则可能是控制器中的东西。

这是更新的小提琴。小提琴没有运行。我只想向您展示如何将数组转换为对象。请检查:-) jsfiddle.net/DharkRoses/7kLo51v7

您现在已经将candidates设置为对象,因此您希望像最初使用(key, candidateGroup) in candidates一样对其进行迭代,尽管由于candidateGroup(即presidents或vicePresidents)现在不再可以执行candidateGroup.show了。是数组。

Copyright ©  码农家园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值