0

I have empty model with cars:

$scope.registration.cars = {
    1: {
        capacity: '',
        count: '',
        license: ''
    },
    2: {
        capacity: '',
        count: '',
        license: ''
    }
};

Then I use ng-repeat to generate cars form:

<div class="row row_vehicles" ng-repeat="(key, value) in registration.cars">
    <input type="number" name="registration_car_capacity[{{key}}]" ng-model="registration.car[{{key}}].capacity" />
    <input type="number" name="registration_car_count[{{key}}]" ng-model="registration.car[{{key}}].count" required />
    <input type="text" name="registration_car_license[{{key}}]" ng-model="registration.car[1].license" ng-minlength="7" required />
</div>

But this is not working. How can I insert KEY into ng-model array?

2
  • Remove {{}} on the name and nd-model attributes like ng-model="registration.car[key].capacity" Commented Jun 23, 2017 at 14:12
  • @general666 you should consider who answered first while upvoting and answering . :( Commented Jun 23, 2017 at 15:05

2 Answers 2

2

Don't use interpolation operator ({{..}}) inside angular scope.(anything like ng-*), In your case ng-model

<div class="row row_vehicles" ng-repeat="(key, value) in registration.cars">
    <input type="number" name="registration_car_capacity[key]" ng-model="registration.car[key].capacity" />
    <input type="number" name="registration_car_count[key]" ng-model="registration.car[key].count" required />
    <input type="text" name="registration_car_license[key]" ng-model="registration.car[key].license" ng-minlength="7" required />
</div>
Sign up to request clarification or add additional context in comments.

1 Comment

Thanak you for solution ;)
2

You just have to remove interpolation {{}} enclosing the key. You can't use this with angular directives.

<div ng-controller="MyCtrl">
    <div class="row row_vehicles" ng-repeat="(key, value) in registration.cars">
        <input type="number" name="registration_car_capacity[key]"
        ng-model="registration.cars[key].capacity"
        />
        <input type="number" name="registration_car_count[key]"
        ng-model="registration.cars[key].count"
        required />
        <input type="text" name="registration_car_license[key]"
        ng-model="registration.cars[key].license"
        ng-minlength="7" required /> 
    </div>
</div>

Working Fiddle: http://jsfiddle.net/ADukg/12094/

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.