首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态调查

动态调查
EN

Stack Overflow用户
提问于 2016-10-27 14:53:43
回答 1查看 555关注 0票数 0

我希望对以下情况有一个看法:

我有一个问题和答案的调查:

代码语言:javascript
复制
questions: Question[];
answer: Answer[];

其中Question是:

代码语言:javascript
复制
export class Question {
    idQuestion: string;
    question: string;
}

export class Answer {
    idAnswer: string;
    answer: string;
    idQuestion: string;
    type: string; // inputbox - select - etc
}

目前,我可以分别提出问题和回答:

代码语言:javascript
复制
<ul *ngFor="let question of questions;">
    <li>
        <a id="{{question.idQuestion}}">{{question.question}}</a>
    </li>
</ul>
<ul *ngFor="let answer of answers;">
    <li>
        <a id="{{respuesta.idAnswer}}">{{answer.answer}}</a>
    </li>
</ul>

但我想用这样的方式呈现出来:

代码语言:javascript
复制
question1: answer;
question2: answer;
question3: select;

我该如何面对这个问题?Angular2中有什么模式吗?我希望避免html的硬编码从ts循环在问题和找到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-27 15:12:18

我头上有两种选择:

地图

要么在TS中将问题和答案映射在一起,然后使用一个循环显示它们:

代码语言:javascript
复制
let questionsAndAnswers =
    questions.map(question => {question:question, answer: answers.find((answer) => answer.idQuestion === question.idQuestion)})

这将给你一系列包含答案和提问的图层。在html中,您可以这样做:

代码语言:javascript
复制
<ul *ngFor="let questionTuble of questionsAndAnswers ;">
    <li>
        <a id="{{question.idQuestion}}">{{questionTuble.question.question}}:{{questionTuble.answer.answer}}</a>
    </li>
</ul>

变化模型

这是我正确选择的解决方案:

更改您的问题模型以包括答案,并从答案中删除questionId。在我看来,这提高了html中的读取能力:

代码语言:javascript
复制
<ul *ngFor="let question of questions;">
    <li>
        <a id="{{question.idQuestion}}">{{question.question}}:{{question.answer.answer}}</a>
    </li>
</ul>

为了进一步提高可读性,我会将问题的“问题”属性重新命名为文本或类似的东西。

(注意,还没有测试这些,所以可能会出现一些语法错误)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40287841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档