标签: angularjs-ng-options

是否可以在Angular ng-options中连接值

基本上,我正在尝试填充选择框,但从first_name列和last_name列连接值.

我想做什么(不起作用):

<select ng-model="buyers" ng-options="b.id as (b.first_name + " " + b.last_name) for b in buyers"></select>
Run Code Online (Sandbox Code Playgroud)

什么工作:

<select ng-model="buyers" ng-options="b.id as b.first_name for b in buyers"></select>
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-ng-options

71
推荐指数
1
解决办法
4万
查看次数

使用模型编号的Angularjs ng-options不选择初始值

我正在尝试使用ng-options和a <select>将数字整数值绑定到相应选项的列表.在我的控制器中,我有这样的事情:

myApp.controller('MyCtrl', function() {
    var self = this;

    var unitOptionsFromServer = {
        2: "mA",
        3: "A",
        4: "mV",
        5: "V",
        6: "W",
        7: "kW"
    };

    self.unitsOptions = Object.keys(unitOptionsFromServer).map(function (key) {
        return { id: key, text: unitOptionsFromServer[key] };
    });

    self.selectedUnitOrdinal = 4; // Assume this value came from the server.
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<div ng-controller="MyCtrl as ctrl">
    <div>selectedUnitOrdinal: {{ctrl.selectedUnitOrdinal}}</div>
    <select ng-model="ctrl.selectedUnitOrdinal" ng-options="unit.id as unit.text for unit in ctrl.unitsOptions"></select>
</div>
Run Code Online (Sandbox Code Playgroud)

这里有一个jsFiddle演示了这个问题,以及我采取的一些其他方法,但我并不满意.

正在使用空值初始化select选项,而不是在此示例中预期的"mV".如果您选择其他选项 - selectedUnitOrdinal正确更新,绑定似乎工作正常.

我注意到如果你将初始模型值设置为字符串而不是数字,那么初始选择就可以了(参见小提琴中的#3).

我真的希望ng-options能够很好地使用数字选项值.我怎样才能优雅地实现这一目标?

angularjs ng-options angularjs-ng-options

60
推荐指数
7
解决办法
6万
查看次数

Angularjs select不会将匹配模型标记为已选中

我的ngModel在选择未显示为已选中时出现问题.id和name都匹配但不起作用,请参阅selectedState.将模型指向options数组中的实际对象,请参阅selelectedState2.不知道发生了什么......

小提琴:http: //jsfiddle.net/fedorsmirnoff/b49n4Ldp/2/

<select ng-model="selectedState" ng-options="state.name for state in stateOptions"></select>

<select ng-model="selectedState2" ng-options="state.name for state in stateOptions"></select>

function MainCtrl($scope) {
 $scope.stateOptions = [
     {id: 1, name: "Alaska"},
     {id: 2, name: "Montana"},
     {id: 3, name: "Nebraska"},
     {id: 4, name: "Texas"}
  ]

 $scope.selectedState = {id: 2, name: "Montana"};

 $scope.selectedState2 = $scope.stateOptions[1];

}
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-ng-options angularjs-ng-model

21
推荐指数
2
解决办法
1万
查看次数

如何在Angular中使用ng-options过滤选择?

我写了一个Angular应用程序的概念验证概念,允许一个人投票给美国总统.

<!DOCTYPE html>
<html ng-app="ElectionApp"">
<head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
    <script>
        var ElectionApp = angular.module("ElectionApp", []);
        var ElectionController = ElectionApp.controller("ElectionController", [function () {
            // Pretend that this data came from an outside data-source.
            this.candidates = {
                "14837ac3-5c45-4e07-8f12-5771f417ca4c": {
                    name: "Alice",
                    gender: "female"
                },"333eb217-c8d1-4b94-91a4-22a3770bbb22": {
                    name: "Bob",
                    gender: "male"
                }
            };
            this.vote = function () {
                // TODO: Record the user's vote.
            };
        }]);
    </script>
</head>
<body ng-controller="ElectionController as ctrl">
    Who would you like to elect President? <br />
    <select
        ng-model="ctrl.selection"
        ng-options="person …
Run Code Online (Sandbox Code Playgroud)

angularjs ng-options angularjs-ng-options

21
推荐指数
3
解决办法
6万
查看次数

无法设置ng-options的选定值

我正在尝试填充下拉选择选项列表,并使用ng-model和ng-options设置默认选定值.

我在视图中有以下代码:

<select ng-model="thisTour.site" ng-options="site.name for site in siteList"></select>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中:

    $scope.siteList = [
        { id: 1, name: 'cycling'},
        { id: 2, name: 'walking'},
        { id: 3, name: 'holidays'}
    ]

    $scope.thisTour.site = { id: 2, name: 'walking'};
Run Code Online (Sandbox Code Playgroud)

该列表正在填充来自siteList对象的正确3个选项,但是默认情况下并不是按照我的预期选择行走?为什么不?

现在,当我改变这个:

$scope.thisTour.site = { id: 2, name: 'walking'};
Run Code Online (Sandbox Code Playgroud)

对此:

$scope.thisTour.site = $scope.siteList[1];
Run Code Online (Sandbox Code Playgroud)

现在它有效.为什么?这不是一回事吗?

angularjs angularjs-ng-options

15
推荐指数
1
解决办法
4万
查看次数

如何在ng-options中的项目标签上使用angularJs过滤器

给定一个加载了产品选项的选择列表,我希望标签采用选项名称的格式,然后在括号中定价.例如:"产品选项B($ 1,432.12)".我的选项对象具有"名称"和"价格"属性.价格是数字,我想用货币过滤器格式化.我该怎么做?我想也许是一个带字符串和数值的自定义过滤器.只是不确定我如何能够在ng-options中应用过滤器.

以下代码只显示名称(不是价格):

<select class="form-control"
        ng-model="selectedOption"
        ng-options="option.name for option in category.options"></select> 
Run Code Online (Sandbox Code Playgroud)

angularjs ng-options angularjs-ng-options

12
推荐指数
1
解决办法
7891
查看次数

AngularJS:ng-model将int切换为字符串

我目前正在开发Angular中的应用程序.到目前为止,一切都很顺利.对于棱角分明,我真的非常非常新,我很惊讶第一个真正的障碍花了这么长时间.

情况:

我有一个对象数组,每个对象都有一个订单.

category.items = [{id: 1, order: 1, type: {}, ...}, {id: 54, order: 2, type: {}, ...}, {id: 3, order: 3, type: {}, ...}]
Run Code Online (Sandbox Code Playgroud)

用户需要能够重新排列这些项目.必须将新订单设置为对象属性"订单".

在html中,这些对象的呈现方式如下:

<div class="category">
    <div class="item" ng-repeat="(itemIndex, item) in category.items track by $index">
        <div class="header">
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在header-div中我有一个输入字段,类型为select.

<select ng-model="item.order"  ng-change="changeItemOrder((itemIndex + 1), item.order, itemIndex)">
  <option ng-repeat="item in category.items" ng-value="($index + 1)">{{$index + 1}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)

changeItemOrder的代码:

$scope.changeItemOrder = function(old_order, new_order, item_index) {
    new_order = parseInt(new_order);
    if (old_order != new_order) {
        var …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ng-options angular-ngmodel angularjs-ng-options

10
推荐指数
2
解决办法
1万
查看次数

从ng-options选项中过滤ng-options

我希望能解决三个问题......

在我的应用页面中,我有一个选择状态,另一个选择县.对于我所拥有的州:

<select ng-model="filter.stateID" ng-options="item.stateID as item.state for item in st_option">
</select>
Run Code Online (Sandbox Code Playgroud)

数据:

[
  { state="California", stateID="5"},
  { state="Arizona", stateID="3"},
  { state="Oregon", stateID="38"},
  { state="Texas", stateID="44"},
  { state="Utah", stateID="45"},
  { state="Nevada", stateID="29"}
]
Run Code Online (Sandbox Code Playgroud)

对于我的县选择我有:

<select ng-model="filter.countyID" ng-options="item.countyID as item.county for item in co_option">
 </select>
Run Code Online (Sandbox Code Playgroud)

数据:

[
  { county="Orange", countyID="191", co_state_id="5"},
  { county="Multiple Counties", countyID="3178", co_state_id="3"},
  { county="Sonoma", countyID="218", co_state_id="38"},
  { county="Los Angeles", countyID="190", co_state_id="44"}
]
Run Code Online (Sandbox Code Playgroud)

这是我的ng-repeat:

<div ng-repeat="project in projects | filter:filter">
    <div>
        State: {{project.state}}<br> 
        County: {{project.county}}<br>
        <span …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-ng-repeat ng-options angularjs-ng-options

9
推荐指数
1
解决办法
5万
查看次数

角度选择和ng选项

我有这个角度选择:

<select ng-model='obj.status' ng-options='status.code as (status.code + " " + status.phrase) for status in status_codes.data track by status.code'>`
Run Code Online (Sandbox Code Playgroud)

$scope.status_codes是这样的:

data: [
{
       "code":"100",
       "phrase":"...",
       "spec_title":"RFC7231#6.2",
       "spec_href":"http://tools.ietf.org/html/rfc7231#section-6.2"
}
...
]
Run Code Online (Sandbox Code Playgroud)

$scope.obj.status当我更改我的选择时,我的更新为"300"或"100"或其他任何内容,但选择的显示始终为空白.因此,模型更新为选择输入的选定值,但输入未显示当前选定的值,它显示空白项.

如果我改变ng-options是ng-options='status as (status.code ...'有效的,但我只想在我的模型中使用status.code,而不是整个状态数组.是什么赋予了?

{{obj | json }}在我的HTML和记载:

obj = {
  "name": "",
  "description": "",
  "payload": "",
  "status": "200",
  "responseHeaders": {
    "entry": [
      {
        "key": "",
        "value": ""
      },
      {
        "key": "",
        "value": ""
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-ng-options angularjs-track-by

9
推荐指数
1
解决办法
4589
查看次数

Angular.js使用ngOptions选择:标记optgroup

我刚刚开始使用Angular.js并对ngOptions有疑问:是否可以标记optgroup?

让我们假设2个物体 - 汽车和车库.

cars = [
    {"id": 1, "name": "Diablo", "color": "red", "garageId": 1},
    {"id": 2, "name": "Countach", "color": "white", "garageId": 1},
    {"id": 3, "name": "Clio", "color": "silver", "garageId": 2},
    ...
]
garages = [
    {"id": 1, "name": "Super Garage Deluxe"},
    {"id": 2, "name": "Toms Eastside"},
    ...
]
Run Code Online (Sandbox Code Playgroud)

使用此代码,我得到了几乎我想要的结果:

ng-options = "car.id as car.name + ' (' + car.color + ')' group by car.garageId for car in cars"
Run Code Online (Sandbox Code Playgroud)

结果选择:

-----------------
1
 Diablo (red)
 Countach (white)
 Firebird (red)
2
 Clio …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-ng-options

8
推荐指数
1
解决办法
7630
查看次数