javascript - AngularJS Dropdown language select - Stack Overflow

for a school project I am creating an application using AngularJS. I am trying to create a dropdown men

for a school project I am creating an application using AngularJS. I am trying to create a dropdown menu that sets the selected language using a button.

JS:

app.controller('NavCtrl',['$scope','$translate', function($scope,$translate){

    $scope.languages = [
        { language: "en", },
        { language: "nl" }
    ];

    $scope.selectedlanguage = $scope.languages[1];

    $scope.ChangeLanguage = function (lang) {
        $translate.use(lang);
    }

}])

HTML:

<div ng-controller="NavCtrl">
    <select ng-model="selectedlanguage" 
            ng-change="option(this.selectedlanguage)" 
            ng-options="i.language for i in languages">
    </select>
    {{selectedlanguage.language}}
    <button class="button button-clear" 
            ng-click="ChangeLanguage('{{selectedlanguage.language}}')">
         Set language
    </button>
</div>

At the moment the button always sets my language to [1] (nl), how do I get it to set the language to the language selected in the dropdown menu?

for a school project I am creating an application using AngularJS. I am trying to create a dropdown menu that sets the selected language using a button.

JS:

app.controller('NavCtrl',['$scope','$translate', function($scope,$translate){

    $scope.languages = [
        { language: "en", },
        { language: "nl" }
    ];

    $scope.selectedlanguage = $scope.languages[1];

    $scope.ChangeLanguage = function (lang) {
        $translate.use(lang);
    }

}])

HTML:

<div ng-controller="NavCtrl">
    <select ng-model="selectedlanguage" 
            ng-change="option(this.selectedlanguage)" 
            ng-options="i.language for i in languages">
    </select>
    {{selectedlanguage.language}}
    <button class="button button-clear" 
            ng-click="ChangeLanguage('{{selectedlanguage.language}}')">
         Set language
    </button>
</div>

At the moment the button always sets my language to [1] (nl), how do I get it to set the language to the language selected in the dropdown menu?

Share Improve this question edited Oct 20, 2015 at 13:10 Mike Chamberlain 42.6k28 gold badges113 silver badges159 bronze badges asked Oct 20, 2015 at 12:56 TabsTabs 231 silver badge3 bronze badges
Add a ment  | 

4 Answers 4

Reset to default 3

No need to wrap it in {{...}}

<div ng-controller="NavCtrl">
    <select ng-model="selectedlanguage" 
            ng-change="option(this.selectedlanguage)" 
            ng-options="i.language for i in languages">
    </select>
    {{selectedlanguage.language}}
    <button class="button button-clear" 
            ng-click="ChangeLanguage(selectedlanguage)">
         Set language
    </button>
</div>

I can see a few problems.

First, you don't need the this.selectedLanguage in your view, as $scope is automatically assumed as your context:

ng-change="option(selectedlanguage)"

Second, in your controller, you are setting $scope.selectedlanguage to an i, but then binding it to i.language in the view. To fix this, try:

ng-options="i as i.language for i in languages"

The x as y syntax lets you bind x to the model, while showing y for your dropdown label.

https://docs.angularjs/api/ng/directive/ngOptions

Third, as @Matthew Berg points out, you don't need the {{...}} in you click handler:

ng-click="ChangeLanguage(selectedlanguage.language)"

Here's a plunkr with everything working:

http://plnkr.co/edit/YZf3vsKQEucOsKFLlYoQ?p=preview

Can you check lang value inside $scope.ChangeLanguage function? I think it is always {{selectedlanguage.language}}.

Change: "ChangeLanguage(selectedlanguage.language)"

use this code::::

  <div ng-controller="NavCtrl">
       <select ng-model="selectedlanguage" ng-change="option(selectedlanguage)" ng-options="i as i.language for i in languages"></select>
        {{selectedlanguage.language}}
       <button class="button button-clear" ng-click="ChangeLanguage(selectedlanguage)">Set language</button>
  </div>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744275355a4566302.html

相关推荐

  • javascript - AngularJS Dropdown language select - Stack Overflow

    for a school project I am creating an application using AngularJS. I am trying to create a dropdown men

    7天前
    50

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信