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" >○ {{ 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");