Javascript AngularJS下拉式语言选择
对于一个学校项目,我正在使用AngularJS创建一个应用程序。我试图创建一个下拉菜单,使用按钮设置所选语言 JS: HTML: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
{{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>