【问题标题】:AngularJS - get properties of selected option in dropdownAngularJS - 在下拉列表中获取所选选项的属性
【发布时间】:2014-02-07 13:38:17
【问题描述】:

从 Angular 开始并使用选择下拉菜单真的让我很困惑。基本上,我使用 AJAX 调用获取 JSON 对象,然后使用 AngularJS 使用 JSON 填充我的表单。

对于下拉菜单,settings.metric = '2' 来自数据库。所以选择的是“cm”。

我的问题是,如何获取当前选择的选项及其数据值?我尝试了 scope.settings.metric 但给我的只是“2”。我喜欢获取所选对象的其他属性,例如 namedatavalue

$scope.metrics = [
            {id:1,name:'in',value:'1',datavalue:'in'},
            {id:2,name:'cm',value:'2',datavalue:'cm'},
            {id:3,name:'px',value:'3',datavalue:'px'},
            {id:4,name:'pt',value:'4',datavalue:'pt'}
            ];

<select 
    ng-model="settings.metric" // this is 2 from database call
    ng-options="p.value as p.name for p in metrics" >
</select>

【问题讨论】:

    标签: angularjs select option


    【解决方案1】:

    这对于您已有的非常简单。你必须写这个。

    ng-options="p as p.name for p in metrics"
    

    第一个参数'p'是要存储的值 第二个参数'p.name'是选项中显示的值。

    希望对兄弟有所帮助。

    【讨论】:

    • 您好,感谢您的回答。但我想知道如何在另一个 javascript 函数中从外部访问当前选择的选项属性......有什么想法吗?
    • 检查ng-model的值
    • @ScottYu-UXdesigner 如果你这样做,你就会在 scope.settings.metric 中拥有整个对象
    • @ZackArgyle 这很奇怪..我尝试做 scope.settings.metric 但我得到的只是“2”...我最后不得不做 scope.metrics[parseFloat(scope.settings.metric- 1)].datavalue;
    • @ScottYu-UXdesigner,不知道你是怎么做的,但这里有一个似乎可以很好地处理你的东西的小提琴。 jsFiddle Example
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多