AngularJS ngModel directive in select

后端 未结 2 869
梦毁少年i
梦毁少年i 2020-12-31 08:52

I am working on an angularjs project and i have a problem with the ngModel not binding within the select.But the same concept is working in another select tag a

相关标签:
2条回答
  • 2020-12-31 09:01

    Based on Tony the Pony's fiddle :

    <div ng-app ng-controller="MyCtrl">
        <select ng-model="opt"
                ng-options="font.title for font in fonts"
                ng-change="change(opt)">
        </select>
    
        <p>{{opt}}</p>
    </div>
    

    With a controller:

    function MyCtrl($scope) {
        $scope.fonts = [
            {title: "Arial" , text: 'Url for Arial' },
            {title: "Helvetica" , text: 'Url for Helvetica' }
        ];
        $scope.change= function(option){
            alert(option.title);
        }
    }
    

    http://jsfiddle.net/basarat/3y5Pw/43/

    0 讨论(0)
  • 2020-12-31 09:14

    First create data (can be local or from server) in Controller. And initialize the default value, which force the default item selected in HTML form.

    // supported languages
    $scope.languages = ['ENGLISH', 'SPANISH', 'RUSSIAN', 'HINDI', 'NEPALI'];
    // init default language
    $scope.language = 'ENGLISH';
    

    Now in your HTML form

    <select class="form-control" ng-model="language">
        <option ng-repeat="language in languages">{{language}}</option>
    </select>
    


    The screenshot is here (note bootstrap CSS is used and not included here).

    enter image description here


    You can do a test in controller, whether the change is working

    $scope.$watch('language', function (newVal, oldVal) {
        console.log(oldVal + " -> " + newVal);
    });
    

    ENGLISH -> RUSSIAN

    RUSSIAN -> SPANISH

    SPANISH -> RUSSIAN

    Hope this is helpful. Thanks!

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