Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将类添加到父级';s的父母';s在角JS中的div?_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 如何将类添加到父级';s的父母';s在角JS中的div?

Javascript 如何将类添加到父级';s的父母';s在角JS中的div?,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个日常建立的测试列表: <script id="TestsTemplate" type="text/ng-template"> <article class="tests-main"> <section class="tests"> <div class="test" ng-repeat="test in tests"> <p

我有一个日常建立的测试列表:

<script id="TestsTemplate" type="text/ng-template">
        <article class="tests-main">
            <section class="tests">
                <div class="test" ng-repeat="test in tests">
                    <p>Question {{ test.number }}:</p>
                    <div ng-repeat="answer in test.answers">
                        <div ng-repeat="(key, value) in answer">
                            <p><button ng-click="processAnswer(value, $event)" class="btn" >&#9675 {{ key }}</button></p>
                        </div>
                    </div>
                </div>
        </article>
    </script>
如何做它的角度风格

编辑: 我的解决方案:

使用和:


在我看来,
index
test.number

在我看来,Angular是一个库,可以让程序员减少dom选项

您可以使用数据绑定功能来实现大多数请求


如果您确实想获得父元素并添加属性,只需使用jQuery或纯javascript即可。

在我看来,Angular是一个库,可以让程序员减少dom选项

您可以使用数据绑定功能来实现大多数请求


如果您确实想获取父元素并添加属性,只需使用jQuery或纯javascript。

当您将布尔值设置为
true
时,您可以使用
ng class
应用该类。例如:

 <div class="test" ng-repeat="test in tests" ng-class="{'hide' : onProcessAnswer}">

当您将布尔值设置为
true
时,可以使用
ng class
应用该类。例如:

 <div class="test" ng-repeat="test in tests" ng-class="{'hide' : onProcessAnswer}">
像这样试试

angular.element(event.target).parent().parent().addClass("hide");
不建议在html中操作dom。您应该只在指令中执行dom操作

像这样试试看

angular.element(event.target).parent().parent().addClass("hide");
不建议在html中操作dom。您应该只在指令中执行dom操作

尽量简单

$element.parent().addClass('default-class')尽量简单


$element.parent().addClass('default-class')可能应该使用指令。或者,您可以使用
ng类
并在
ng上单击
test
@Tristan上设置一个变量,是否有差异?如果我这样操作DOM,但在指令中,它是否会以角度方式操作?控制器、服务或表示层中不应存在DOM操作。原因是“关注点的清晰分离”。指令是可重用的、可测试的,并且更容易处理依赖项。这取决于这些实践对项目的重要性。正如我所提到的,您可以非常轻松地在模板中使用
ng类
,甚至不涉及控制器,但出于上述原因,不建议使用它。可能应该使用指令。或者,您可以使用
ng类
并在
ng上单击
test
@Tristan上设置一个变量,是否有差异?如果我这样操作DOM,但在指令中,它是否会以角度方式操作?控制器、服务或表示层中不应存在DOM操作。原因是“关注点的清晰分离”。指令是可重用的、可测试的,并且更容易处理依赖项。这取决于这些实践对项目的重要性。正如我所提到的,您可以非常轻松地在模板中使用
ng class
,甚至不涉及控制器,但是出于前面提到的原因,不建议使用它。
$scope.onProcessAnswer = false;
$scope.processAnswer = function(isRight, event) {
        ... 
        $scope.onProcessAnswer = true;
        ...
}
angular.element(event.target).parent().parent().addClass("hide");