0

Angularjs 1.5.5

I have a simple Select which works fine:

    <select ng-model="selectedPart">
        <option ng-repeat="optionPart in parts"  value="{{optionPart.Id}}">{{optionPart.Title}}</option>
    </select>

When I set the id as a string, the Select renders that correctly:

 $scope.selectedPart = "1";

When I set it to an Int from an object, no change is made.

 $scope.selectedPart = $scope.parts[0].Id;

Why does the Int not update the Select but the string does, and how would I get it to work?

2 Answers 2

2

Try it like this instead

<select ng-model="selectedPartId"
    ng-options="part.Id as part.Title for part in parts">
</select>

Note that I've changed the model to reflect that you're selecting an id and not a parts entry.

If you did want to bind an object, try this

<select ng-model="selectedPart"
    ng-options="part.Title for part in parts track by part.Id">
</select>

You could then assign it via $scope.selectedPart = $scope.parts[0];

Sign up to request clarification or add additional context in comments.

Comments

0

There are two ways in which you can do it:

1. $scope.parts = [{
                        id: 2,
                        Title: 'XX'
                    }, {
                        id: 5,
                        Title: 'XXXX'
                    }, {
                        id: 8,
                        Title: 'XXVVV'
                    }];

                    $scope.selectedPart = $scope.parts[1];

                    <select ng-options="part as part.Title for part in parts track by part.id" ng-model="selectedPart"></select>

2. $scope.parts = [{
                        id: 2,
                        Title: 'XX'
                    }, {
                        id: 5,
                        Title: 'XXXX'
                    }, {
                        id: 8,
                        Title: 'XXVVV'
                    }];

                    $scope.selectedPart = $scope.parts[1].id;

                    <select ng-options="part.id as part.Title for part in parts" ng-model="selectedPart"></select>

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.