0

ディレクティブは次のとおりです。

<a ng-if="field.bindingType == 'options'">
 <select ng-model="field.value" {{html}} >
  <option ng-repeat="(k,v) in field.options" value="{{k}}">{{v}}</option>
 </select>
</a>
<a ng-if="field.bindingType != 'options'">
 <a ng-if="['text','ntext','nvarchar','varchar'].indexOf(field.type) > -1">
  <textarea ng-model="field.value" {{html}} ></textarea>
 </a>
 <a ng-if="['double','float','int'].indexOf(field.type) > -1">
  <input type="number" ng-model="field.value" {{html}} />
 </a>
 <a ng-if="field.type == 'bit'">
  <input type="checkbox" ng-model="field.value" {{html}} />
 </a>
 <a ng-if="field.type == 'date'">
  <input type="date" ng-model="field.value" {{html}} />
 </a>
 <a ng-if="field.type == 'time'">
  <input type="time" ng-model="field.value" {{html}} />
 </a>
 <a ng-if="field.type == 'datetime'">
  <input type="datetime-local" ng-model="field.value" {{html}} />
 </a>
</a>

何らかの理由で、field.bindingTypeが 'options' であるために最初のng-ifを渡す場合でも、2 番目のng-ifを渡すことができます (bindingType は 'options' ではありません)。明らかに、それは不可能ですが、それは起こり続けています。

これは、フィールドの場合にのみ発生します。ただし、 type は内部の ng-if 条件の 1 つと一致します。ディレクティブのng-if="field.bindingType != 'options'"部分を無視しているかのようです。

ここで何が問題なのですか?

ありがとう。

4

0 に答える 0