Javascript AngularJS下拉式语言选择

Javascript AngularJS下拉式语言选择,javascript,angularjs,html,Javascript,Angularjs,Html,对于一个学校项目,我正在使用AngularJS创建一个应用程序。我试图创建一个下拉菜单,使用按钮设置所选语言 JS: HTML: {{selectedlanguage.language} 设定语言 目前,按钮总是将我的语言设置为[1](nl),如何让它将语言设置为下拉菜单中选择的语言?使用以下代码: <div ng-controller="NavCtrl"> <select ng-model="selectedlanguage" ng-change="op

对于一个学校项目,我正在使用AngularJS创建一个应用程序。我试图创建一个下拉菜单,使用按钮设置所选语言

JS:

HTML:


{{selectedlanguage.language}
设定语言
目前,按钮总是将我的语言设置为[1](nl),如何让它将语言设置为下拉菜单中选择的语言?

使用以下代码:

  <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>

{{selectedlanguage.language}
设定语言

能否检查$scope.ChangeLanguage函数中的lang值?我认为它总是{{selectedlanguage.language}}

更改:
“ChangeLanguage(selectedlanguage.language)”

我发现了一些问题

首先,您不需要使用视图中的
此选项。选择的语言
,因为
$scope
会自动假定为您的上下文:

ng-change="option(selectedlanguage)"
Second在控制器中,您正在将
$scope.selectedlanguage
设置为
i
,然后将其绑定到视图中的
i.language
。要解决此问题,请尝试:

ng-options="i as i.language for i in languages"
x as y
语法允许您将
x
绑定到模型,同时为下拉标签显示
y

Third,正如@Matthew Berg所指出的,点击处理程序中不需要
{{…}}

ng-click="ChangeLanguage(selectedlanguage.language)"
这是一个一切正常的plunkr:


无需将其包装在
{{…}

<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>

{{selectedlanguage.language}
设定语言

这解决了所有问题!感谢您的快速回复,并帮助我了解更多关于JS:)。感谢您的提示,您的评论与@Mike Chamberlain一起解决了我的问题!一旦我有了所需的声誉,我会尽快的!单凭这一点是行不通的,但正如@Mike Chamberlain所指出的,需要部分解决整体问题。谢谢
ng-click="ChangeLanguage(selectedlanguage.language)"
<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>