Barlas Apaydin
Barlas Apaydin

Reputation: 7315

How to define ng-options selected value and assign this to model?

I have a data like this which i compile to select options and inside it selected value defined as defaultValue: 1

content: [
    {
        value: "Bireysel",
        key: "1",
        defaultValue: 0
    },
    {
        value: "Kurumsal",
        key: "2",
        defaultValue: 1
    },
    {
        value: "Bireysel & Kurumsal",
        key: "3",
        defaultValue: 0
    }
]

I can convert this to select opitons and send user's selected value to server.

<select ng-model="model.customer" ng-options="item.key as item.value for item in model.properties['CUSTOMER']" name="customer" required>
</select>

But when i try to define selected value i can not send to server. I've tried track by but it selects all option fields and i can not send selected field to server.


<select ng-model="model.customer" ng-options="item.key as item.value for item in model.properties['CUSTOMER'] track by defaultValue" name="customer" required>
</select>

I've also tried ng-repeat not ng-options. This method seems dirty, it selects default value true but i can not send true data to server if user isn't changed any option. This occurs because of ng-selected is not assigns default value to my model: model.customer

<select ng-model="model.customer" name="customer" required>
    <option ng-repeat="item in model.properties['CUSTOMER']" value="{{item.key}}" ng-selected="item.defaultValue">{{item.value}}</option>
</select>

How can i manage to define default value using ng-options and assign this to my model for sending true data to server ?

Upvotes: 0

Views: 387

Answers (2)

Felipe Pedroso
Felipe Pedroso

Reputation: 1

var CONTRIBUINTE = -1,
        IMOVEL = -2,
        ECONOMICO = -3,

     $scope.tiposConsulta = [
        { Id: CONTRIBUINTE, Descricao: 'Contribuinte' },
        { Id: IMOVEL, Descricao: 'Imóvel' },
        { Id: ECONOMICO, Descricao: 'Econômico' }];

$scope.tiposConsultaSelected = CONTRIBUINTE;


<select id="tipoConsulta" class="btn form-control"
                        ng-model="tiposConsultaSelected"
                        ng-options="tipo.Id as tipo.Descricao for tipo in tiposConsulta">
                    </select>

Upvotes: 0

bviale
bviale

Reputation: 5375

The default value of your model can be set with ng-init, like this :

<select ng-model="customer" ng-init="customer = content[0].key" ng-options="item.key as item.value for item in content" name="customer" required>

JSFiddle here

Upvotes: 2

Related Questions