Флажок привязки в повторяющихся угловых js

0

https://jsfiddle.net/bngk/7urrobaa/

 <div ng-repeat="item in items" ng-init="item.showCb = item.value == 'true' || item.value == 'false'">

<input type="checkbox" ng-if="item.showCb" ng-true-value="true" ng-false-value="false" ng-model="item.value" ng-checked="item.value == 'true'">{{items[$index].value}}</input>
    <input type="text" ng-if="!item.showCb"  ng-model="item.value"/>
  </div>

У меня есть проблема с привязкой флажков в ng-repeat, если по умолчанию у меня мало проверенных значений, когда значения не были должным образом обновлены в модели, и если все по умолчанию не проверены, это работает, но значение обновляется в модели, он содержит логическое значение, хотя я упоминал ng-true-value = "true" и ng-false-value = "false" как строку. Я хочу, чтобы строковое значение присутствовало в модели. Пожалуйста, проверьте мою скрипку. Спасибо за поддержку.

  • 1
    В вашем коде много ошибок ... <input> - это самозакрывающийся тег , ngModel и ngChecked не должны использоваться вместе. ngInit не для этого ..
  • 0
    Самозакрывающийся тег и ng-init - это нормально. Но без проверки ng я не могу установить значения по умолчанию, а без модели ng я не могу связать значения. Пожалуйста, дайте мне знать, как использовать NG-модель и NG-Check в этом случае ... Заранее спасибо ...
Теги:
angularjs-ng-repeat

1 ответ

2
Лучший ответ

Если вы посмотрите на документацию: https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D, вы увидите ng- * -value принимает выражение. Поэтому, если вы просто положили ng-true-value="true", он видит это как выражение.

Если вы поместите ng-true-value=" 'true' ", то он знает, что это строка.

Но, как упоминалось выше, в вашем коде есть еще несколько ошибок.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню