小胡子布尔结构仅在一个地方工作

时间:2016-08-30 16:04:21

标签: html asp.net mustache

我使用胡子的布尔标签系统将颜色应用于某些文字。我设法让它在一个地方工作:

{{#BooleanScore}}
    <span class="score booleanScore 
          {{#Unanswered}}
              unansweredScore
          {{/Unanswered}}" 
          style="{{#Unanswered}}
              color:grey;
          {{/Unanswered}}
          {{^Unanswered}}
              color:{{ScoreColor}}
          {{/Unanswered}}">
          {{#Unanswered}}
              N/A
          {{/Unanswered}}
          {{^Unanswered}}
              {{#GreenScore}}
                  YES
              {{/GreenScore}}
              {{#YellowScore}}
                  NO
              {{/YellowScore}}
              {{#RedScore}}
                  NO
              {{/RedScore}}
          {{/Unanswered}}
    </span>
    <span class="boxEmphasis weightHolder">
        <span class="timesSign">
          x
        </span>
        <span class="weight">
          {{Weight}}
        </span>
    </span>
{{/BooleanScore}}

这里发生的事情是,当BooleanScore没有得到回答时,它会显示颜色为灰色的N / A.一旦您回答了问题,根据您选择的内容,它将是“是”或“否”。随着文本,颜色也会发生变化;是的将永远是绿色,否则可以是黄色或红色,但不是两者。这在SQL中确定,如果它具有YellowScore红色将为空,反之亦然。当颜色不为空时,布尔值应为true而另一个为false,因此逻辑在第一个示例中有效。

我尝试在同一个文件中使用相同的逻辑,只是在不同的div中,但由于某种原因,逻辑不会持续存在。

{{#BooleanScore}}
      <div style="color:green;">
        Green: {{Green}}
      </div>
      {{#YellowScore}}
        <div style="color:orange;">
          Yellow: {{Yellow}}
        </div>
      {{/YellowScore}}
      {{#RedScore}}
        <div style="color:red;">
          Red: {{Red}}
        </div>
      {{/RedScore}}
{{/BooleanScore}}

出于某种原因,它可能会将YellowScoreRedScore视为错误,并且在Green: {{Green}}

周围放置一堆换行符

这就是目前正在发生的事情,只有绿色表现出一系列的换行符

enter image description here

与之前的情况相比,我需要更改它的原因是因为它不支持YellowScore

enter image description here

更新

在过去几天经过一些修补之后,我设法改善了这种状况。我现在可以得到绿色和红色或绿色和黄色&#34;得分&#34;同时出现。问题在于它取决于用户将分数更改为什么。该部分应该是静态的,让他们知道他们可以获得什么分数。希望下面的图片可以帮助解释我在谈论的内容。

如果分数设置为yes(绿色):

enter image description here

如果分数设置为no(并且它是黄色的):

enter image description here

如果分数设置为no(并且它是红色的):

enter image description here

现在的问题是,得分是基于用户得分而不是静态的。基本上在绿色场景中,我需要的是什么,没有选择是黄色还是红色。

我的胡子代码的当前状态如下:

{{#BooleanScore}}
    <div style="color:green;">
      Green: {{Green}}
    </div>
    <div>
      {{#YellowScore}}
        <div style="color:orange;">
           Yellow: {{Yellow}}
        </div>
      {{/YellowScore}}
      {{#RedScore}}
        <div style="color:red;">
          Red: {{Red}}
        </div>
      {{/RedScore}}
    </div>
{{/BooleanScore}}

值得注意的一点是,<div>将黄色和红色分数与绿色分开是允许这种情况发生的原因。我刚注意到的一点是,一旦应用程序在服务器上发布,它就只能在上面列出,而不是我在本地运行时。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决问题的方法。问题是,我应该检查我的颜色标签是真还是假,而不是检查我的colourScore标签。因此,我应该检查{{#YellowScore}}{{#RedScore}}

而不是{{#Yellow}}{{#Red}}

现在代码如下:

{{#BooleanScore}}
    <div style="color:green;">
      Green: {{Green}}
    </div>
    <div>
      {{#Yellow}}
        <div style="color:orange;">
           Yellow: {{Yellow}}
        </div>
      {{/Yellow}}
      {{#Red}}
        <div style="color:red;">
          Red: {{Red}}
        </div>
      {{/Red}}
    </div>
{{/BooleanScore}}