AngularJS:为什么我的下拉菜单中有一个初始空白条目?

毛格说恢复莫妮卡

我正在从服务器获取一些JSON frm,并使用它来填充组合框。

JSON条目如下所示

    "campaign_id": "2",
    "customer_id": "1",
    "title": "Purple monkey dishwasher",
    "description": "perfectly cromulent",
    "start_time": "19/09/2015 09:42:06",
    "end_time": "19/10/2015 09:42:06"

我宣布我的下落

<select name="SelectCampaignForConnections" 
 ng-model="connectionsCampaignDropDown" 
 ng-options="campaign.title for campaign in campaigns"  
 ng-change="ShowConnectionsForCampaign(connectionsCampaignDropDown)">

我初始化选择模型...

    $http.get(url)   
        .success(function(data, status, headers, config) 
            {
               if ($scope.connections.length > 0)
                   $scope.connectionsCampaignDropDown = $scope.connections[0];

当下拉列表显示时,它包含title每个JSON条目BUT元素,它具有一个初始的空白条目。

我做错了什么?


[更新] @sheilak给了一个很好的分析者:

为了使下拉列表默认为非空白值,传递给ng-model的变量的值必须等于传递给ng-options的选项之一。

在ng-options由campaign.title值填充的情况下,看起来值传递给ng-model,即connectionsCampaignDropDown应该填充$ scope.connections [0] .title而不是整个对象$ scope.connections [0]。

$ scope.connectionsCampaignDropDown = $ scope.connections [0] .title;

但是,我宁愿传递一个完整的对象,而不只是它的一个字段。

能做到吗?

(如果没有,那么我将仅将标题传递给ng-change函数ShowConnectionsForCampaign(),然后它将不得不遍历数据以查找匹配项,这似乎效率不高)

卢卡
<select name="SelectCampaignForConnections" 
    ng-init="justGiveItAName=getInitialSelection()"
    ng-model="justGiveItAName" 
    ng-options="campaign.title for campaign in campaigns"  
    ng-change="ShowConnectionsForCampaign(justGiveItAName)">

其中getInitialSelection()是作用域上的一个函数,如果需要的话可以使用一个参数,但是在上面概述的情况下,我可能会使用类似的东西:

function getInitialSelection() {return connections[0]};

或直接在中设置ng-init

ng-init="$scope.connections[0]"

(您可能不得不摆弄上面的代码-我尚未对其进行测试)。

btw-'justGiveItAName'是在其他地方可用的对象。

我现在已经对其进行了测试;有关工作示例,请参见这些小提琴:

直接在高温下放置:http//jsfiddle.net/lukkea/nuo2c3Lk/

在$ scope上使用函数:http : //jsfiddle.net/lukkea/o6strxjf/

传递对象而不是属性(按照OP的要求):http : //jsfiddle.net/lukkea/fsx8s67j/2/

将对象传入和传回:http : //jsfiddle.net/lukkea/ww9yqsrm/3/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的下拉菜单中总是有一个空值

我的php在我甚至按提交之前就添加了一个空白条目,有什么想法吗?

CSS在下拉菜单中有另一个下拉菜单

我有两个下拉菜单,如果更改下拉菜单的值,它将影响另一个下拉菜单

为什么我的活动中的 ActionBar 下方有一个白条?

为什么右键单击在OpenCV imshow()窗口中打开一个下拉菜单?

为什么布尔值会在QAbstractTableModel中创建一个下拉菜单?

我在Javascript中有一个下拉菜单,但在chrome中工作正常,但在Firefox中工作不正常

具有一个主下拉菜单的多个下拉菜单实现

多个下拉菜单,即使我单击另一个下拉菜单,也只有一个可用

我有一个要放入下拉菜单的时间列表

无法从下拉菜单中选择一个选项,因为我有2个下拉菜单,且具有相同的'<select class =

我有一个crontab条目,它调用bash脚本。为什么$ USER返回空白?

你怎么有多个按钮,但只有一个在 html 中有一个可悬停的下拉菜单?

当我通过另一个下拉菜单悬停时,出现下拉菜单的子菜单

为什么“ /”有一个“ ..”条目?

为什么在/ etc / passwd中有一个man条目

JComboBox:希望第一个条目为空白条目

angularjs下拉菜单:使用一个选项填充两个具有不同信息的输入字段

我有一个混合 Angular 应用程序,但我的下拉菜单不起作用

如果另一个下拉菜单打开,我如何关闭下拉菜单

为什么反应中没有设置下拉菜单的初始值?

当我输入一段代码时,为什么下拉菜单中没有显示文本

从所有下拉菜单中选择一个时,如何禁用其他下拉菜单

当下拉菜单具有相同的ID时,如何从下拉菜单中选择一个选项

具有自动选择一个选项的动态下拉菜单及其子下拉菜单选项

下拉菜单,下拉菜单中有多个值

我现在有一个下拉菜单如何使用 css 在一个链接内创建子菜单

我试图防止没有选择上一个下拉菜单的人能够输入文本