Setting default value in select drop-down using Angularjs

前端 未结 10 1125
囚心锁ツ
囚心锁ツ 2020-12-03 05:24

I have an object as below. I have to display this as a drop-down:

var list = [{id:4,name:\"abc\"},{id:600,name:\"def\"},{id:200,name:\"xyz\"}]
相关标签:
10条回答
  • 2020-12-03 05:30
    $scope.item = {
        "id": "3",
        "name": "ALL",
    };
    
    $scope.CategoryLst = [
        { id: '1', name: 'MD' },
        { id: '2', name: 'CRNA' },
        { id: '3', name: 'ALL' }];
    
    <select ng-model="item.id" ng-selected="3" ng-options="i.id as i.name for i in CategoryLst"></select>
    
    0 讨论(0)
  • 2020-12-03 05:32

    Problem 1:

    The generated HTML you're getting is normal. Apparently it's a feature of Angular to be able to use any kind of object as value for a select. Angular does the mapping between the HTML option-value and the value in the ng-model. Also see Umur's comment in this question: How do I set the value property in AngularJS' ng-options?

    Problem 2:

    Make sure you're using the following ng-options:

    <select ng-model="object.item" ng-options="item.id as item.name for item in list" />
    

    And put this in your controller to select a default value:

    object.item = 4
    
    0 讨论(0)
  • 2020-12-03 05:34

    we should use name value pair binding values into dropdown.see the code for more details

    function myCtrl($scope) {
         $scope.statusTaskList = [
            { name: 'Open', value: '1' },
            { name: 'In Progress', value: '2' },
            { name: 'Complete', value: '3' },
            { name: 'Deleted', value: '4' },
        ];
        $scope.atcStatusTasks = $scope.statusTaskList[0]; // 0 -> Open 
    }
    <select ng-model="atcStatusTasks" ng-options="s.name for s in statusTaskList"></select>

    0 讨论(0)
  • 2020-12-03 05:37

    This is an old question and you might have got the answer already.

    My plnkr explains on my approach to accomplish selecting a default dropdown value. Basically, I have a service which would return the dropdown values [hard coded to test]. I was not able to select the value by default and almost spend a day and finally figured out that I should have set $scope.proofGroupId = "47"; instead of $scope.proofGroupId = 47; in the script.js file. It was my bad and I did not notice that I was setting an integer 47 instead of the string "47". I retained the plnkr as it is just in case if some one would like to see. Hopefully, this would help some one.

    0 讨论(0)
  • 2020-12-03 05:41

    When you use ng-options to populate a select list, it uses the entire object as the selected value, not just the single value you see in the select list. So in your case, you'd need to set

    $scope.object.setDefault = {
        id:600,
        name:"def"
    };
    

    or

    $scope.object.setDefault = $scope.selectItems[1];
    

    I also recommend just outputting the value of $scope.object.setDefault in your template to see what I'm talking about getting selected.

    <pre>{{object.setDefault}}</pre>
    
    0 讨论(0)
  • 2020-12-03 05:42

    I could help you out with the html:

    <option value="">abc</option>
    

    instead of

    <option value="4">abc</option>
    

    to set abc as the default value.

    0 讨论(0)
提交回复
热议问题