所以在我的代码中我有一个简单的常见问题,如下所示。
<section class="faq-section">
<label class="question">Q:This is a Questions?</label>
<p class="answer">This is a an answer </p>
</section>
<section class="faq-section">
<label class="question">Q:This is a Questions?</label>
<p class="answer">This is an answer</p>
</section>
我希望能够让用户点击问题并显示答案。在常规的jQuery中我会做这样的事情:
$( ".question" ).click().next( ".answer" ).toggle('slow');
我如何使用余烬路线和行动来完成这样的事情
<section class="faq-section">
<label class="question" {{action openQuestion}}>Q:This is a Questions?</label>
<p class="answer">This is an answer</p>
</section>
答案 0 :(得分:1)
Ember通常希望您避免直接与DOM交互,因此我认为不存在对此类用法的内置支持。但我有一个类似的用例,我做了类似的事情:
<section class="faq-section">
<label class="question" {{action 'openQuestion' questionId}}>blah</label>
<p class="answer" {{bind-attr data-question-id=questionId}}>blah</p>
</section>
然后,在你的控制器中:
actions: {
openQuestion: function(questionId) {
this.$('.answer[data-question-id=' + questionId + ']').toggle('slow');
}
}
这假设你可以为每个问题提出一个独特的questionId
,但这不应该太难。