ng-init со словами в AngularJS

Я пытаюсь установить, является ли создаваемый новый элемент услугой или продуктом. Я хочу, чтобы по умолчанию продукт был выбран.

<div ng-init="pr.type=Product">
  <div class="form-group">
    <label class="radio-inline">
      <input type="radio" ng-model="pr.type" id="productType" value="Product"> Product
    </label>
    <label class="radio-inline">
      <input type="radio" ng-model="pr.type" id="serviceType" value="Service"> Service
    </label>
  </div>
</div>

Если я изменю тип pr.type на числовой, например, 1 для продукта и 2 для обслуживания, это сработает. Но это не то, что я хочу.

Поскольку заполнители моего поля меняются при изменении выбранного типа.

<div class="row">
  <div class="col-sm-6">
    <div class="form-group">
      <input type="text" ng-model="pr.upc" class="form-control" placeholder="{{pr.type}} Number"/>
    </div>
  </div>
  <div class="col-sm-6">
    <div class="form-group">
      <input type="text" ng-model="pr.name" class="form-control" placeholder="{{pr.type}} Name"/>
    </div>
  </div>
</div>

Ng-init не работает со словами? Я думаю, это не имеет значения. Что я делаю неправильно?

1 ответ

Решение

Поскольку ваш параметр является строкой, вам нужно заключить его в кавычки, иначе движок javascript не будет интерпретировать его так, как вам бы хотелось.

Чтобы это исправить, просто добавьте кавычки вокруг этого термина: ng-init="pr.type='Product'"

Другие вопросы по тегам