unity_variable が true の場合は選択ボックスを表示するか、unity_variable が false でない場合は unity だけを表示したい
私はこれを試しました:
<div ng-if="question.unity_variable == true">
<select>
<option data-ng-repeat="unit in question.unity">{{unit.value}}</option>
</select>
</div>
<div ng-if="question.unity_variable == false || question.unity_variable == ''">
{{question.unity}}
</div>
この :
<div ng-show="question.unity_variable == true" ng-hide="question.unity_variable == false || question.unity_variable == ''">
<select>
<option data-ng-repeat="unit in question.unity">{{unit.value}}</option>
</select>
</div>
<div ng-show="question.unity_variable == false || question.unity_variable == ''">
{{question.unity}}
</div>
したがって、質問ごとに統一された選択ボックスを作成するか、2回表示するが条件を尊重しないng-showを配置しなかった場合...私の間違いを見つけるのを手伝ってください!
編集 :
私のJsonは、フォームを構築するためのコントロールを表示するために次のようになります:
{"id": "01",
"questions": [
{"name": "confidential data", "dbcolumn":"confidential data", "control": "input", "default_value": "", "unity": [{"value": "mmol/l"}, {"value": "autre"}], "unity_variable": true, "isnull": 0, "size":"180px", "data_type":"number", "max_length": 3},
{"name": "confidential data", "dbcolumn":"confidential data", "control": "input", "default_value": "", "unity": "", "isnull": 1, "size":"180px", "data_type":"number", "max_length": 2},
{"name": "confidential data", "dbcolumn":"confidential data","control": "select", "default_value": [{"name":"Femme", "value": "Femme"}, {"name":"Homme", "value": "Homme"}], "unity": "", "isnull": 0, "size":"196px", "data_type":"string"}
]
}
私のhtmlコードは次のとおりです。
<table style="display: inline-block; float: left; max-width: 510px;">
<tr data-ng-repeat="question in group.questions">
<td>{{question.name}}</td>
<td>
<div ng-switch on="question.control" style="display: inline-block;">
<div ng-switch-when="input">
<input type="text" style="width: {{ question.size }};" data-isnull="{{question.isnull}}" name="{{question.dbcolumn}}" id="{{question.dbcolumn}}" placeholder="{{question.default_value}}" maxlength="{{question.max_length}}" />
</div>
<div ng-switch-when="textarea">
<textarea style="width: {{ question.size }};" data-isnull="{{question.isnull}}" name="{{question.dbcolumn}}" id="{{question.dbcolumn}}" placeholder="{{question.default_value}}"></textarea>
</div>
<div ng-switch-when="checkbox">
<input type="checkbox" data-isnull="{{question.isnull}}" name="{{question.dbcolumn}}" id="{{question.dbcolumn}}" />{{question.default_value}}
</div>
<div ng-switch-when="select">
<select style="width: {{ question.size }};" data-isnull="{{question.isnull}}" name="{{question.dbcolumn}}" id="{{question.dbcolumn}}">
<option data-ng-repeat="choice in question.default_value" value="{{choice.value}}">{{choice.name}}</option>
</select>
</div>
<div ng-switch-when="p">
<p style="width: {{ question.size }};" data-isnull="{{question.isnull}}" name="{{question.dbcolumn}}" id="{{question.dbcolumn}}"><b>{{question.default_value}}</b></p>
</div>
<div ng-switch-default>
<!-- default action -->
</div>
</div>
</td>
<td>
<div ng-if="question.unity_variable == true">
<select>
<option data-ng-repeat="unit in question.unity">{{unit.value}}</option>
</select>
</div>
<div ng-if="question.unity_variable == false || question.unity_variable == ''"> {{question.unity}} </div>
</td>
</tr>
単純なコードだけを試してみると:
<div ng-if="1 == 1">true</div>
<div ng-if="1 == 2">false</div>
結果は真と偽を示しているので、構文エラーがあります