Javascript 按钮在表格中不起作用?

Javascript 按钮在表格中不起作用?,javascript,html,angularjs,button,html-table,Javascript,Html,Angularjs,Button,Html Table,我有一个在表格中有按钮的应用程序。单击的按钮理论上应该隐藏表并更改一些数据。当按钮在桌子外面时,它可以正常工作,但在桌子里面就失败了。这是我的密码。 HTML: 为什么按钮不能在表中工作?该按钮包含在ng repeat指令中ng repeat创建它自己的子作用域,因此实际发生的是在名为hideAttr的子作用域上创建一个新的$scope变量并对其进行设置。两个解决方法: 在控制器中定义一个函数并调用它-Angular将查找父对象并找到方法 在ng单击中使用$parent方法:ng单击=“$pa

我有一个在表格中有按钮的应用程序。单击的按钮理论上应该隐藏表并更改一些数据。当按钮在桌子外面时,它可以正常工作,但在桌子里面就失败了。这是我的密码。
HTML:


为什么按钮不能在表中工作?

按钮
包含在
ng repeat
指令中
ng repeat
创建它自己的子作用域,因此实际发生的是在名为
hideAttr
的子作用域上创建一个新的
$scope
变量并对其进行设置。两个解决方法:

  • 在控制器中定义一个函数并调用它-Angular将查找父对象并找到方法

  • ng单击中使用
    $parent
    方法:
    ng单击=“$parent.hideAttr=!$parent.hideAttr”


  • 按钮
    包含在
    ng repeat
    指令中
    ng repeat
    创建它自己的子作用域,因此实际发生的是在名为
    hideAttr
    的子作用域上创建一个新的
    $scope
    变量并对其进行设置。两个解决方法:

  • 在控制器中定义一个函数并调用它-Angular将查找父对象并找到方法

  • ng单击中使用
    $parent
    方法:
    ng单击=“$parent.hideAttr=!$parent.hideAttr”


  • 正如@tymeJV所指出的,
    ng repeat
    创建了新的作用域。更改子范围上的基元值时,会创建一个隐藏父属性的副本。在控制器中,应该有一个对象,该对象具有要更改的基本属性,即

    $scope.tableAttrs = { hide: false };
    
    ng repeat
    标记中,您将使用:

    <div ng-hide="tableAttrs.hide">something to hide</div>
    <button ng-click="tableAttrs.hide = !tableAttrs.hide">hide</button>
    
    要隐藏的东西
    隐藏
    

    这里有一篇博客文章解释了这一点(与表单相关,但想法相同,子作用域隐藏了原始值)

    正如@tymeJV指出的那样,
    ng repeat
    创建了新的作用域。更改子范围上的基元值时,会创建一个隐藏父属性的副本。在控制器中,应该有一个对象,该对象具有要更改的基本属性,即

    $scope.tableAttrs = { hide: false };
    
    ng repeat
    标记中,您将使用:

    <div ng-hide="tableAttrs.hide">something to hide</div>
    <button ng-click="tableAttrs.hide = !tableAttrs.hide">hide</button>
    
    要隐藏的东西
    隐藏
    

    这里有一篇博客文章解释了它(与表单相关,但想法相同,子范围隐藏了原始值)

    当你说调用函数来绕过它时。你是说像这样的东西:纽扣Text@IanPennebaker--是的,当你说调用函数绕过它时。你是说像这样的东西:纽扣Text@IanPennebaker”“是的