首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用AngularJS自动选择正确的选项元素

使用AngularJS自动选择正确的选项元素
EN

Stack Overflow用户
提问于 2016-11-03 00:15:36
回答 1查看 37关注 0票数 0

我正在构建一个AngularJS应用程序(1.4),现在我正在使用一个下拉菜单来选择不同的页面。

问题是,当我在菜单中选择一个页面并转到该页面时,我希望在下拉菜单中自动选择该页面的名称,但这并没有发生。

代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
<select ng-options="menu_voice.name for menu_voice in menu_voices track by menu_voice.url" ng-model='selectedOption' ng-change="changeLink()">
</select>

JS代码:

代码语言:javascript
代码运行次数:0
运行
复制
$scope.changeLink = function(){
    $state.go($scope.selectedOption.url);
};

$scope.menu_voices = [
    {
        "url": 'account.company',
        "name": 'Company'
    },
    {
        "url": 'account.billing',
        "name": 'Billing'
    }
    ...
];

最后,由于我使用的是angular-ui-router,所有这些页面都是嵌套视图,所以在嵌套视图的每个控制器中,我都有下面这行代码:

代码语言:javascript
代码运行次数:0
运行
复制
$scope.selectedOption = $scope.menu_voices[x];

其中x是我想要选择的菜单语音的编号。

我可以更改页面,但每次在下拉菜单中选择的语音都是空白的。我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-11-03 00:19:29

我对我的原始答案做了一个小的修改,因为我不能使用angularjs v1.4使它与"track by“子句一起工作。

HTML: // url现在是选择选项的值,名称是标签

代码语言:javascript
代码运行次数:0
运行
复制
<select ng-options="menu_voice.url as menu_voice.name for menu_voice in menu_voices" ng-model="selectedOption">

控制器:

要预先选择该选项,您需要将url分配给"selectedOption“。

代码语言:javascript
代码运行次数:0
运行
复制
$scope.selectedOption = $scope.menu_voices[x].url;

现在,对于更改链接,您可以在此处执行以下两项操作之一

代码语言:javascript
代码运行次数:0
运行
复制
$scope.changeLink = function(){
    $state.go($scope.selectedOption);
};

代码语言:javascript
代码运行次数:0
运行
复制
$scope.changeLink = function(url){
    $state.go(url);
};

再加上这个:

代码语言:javascript
代码运行次数:0
运行
复制
<select ng-change="changeLink(selectedOption)" ...>

使用angularjs的here is a working example v1.4

Here is a reference link来回答一个类似的问题,这可能会帮助你理解这里发生的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40384731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档