标签: ng-options

Angularjs - 动态ng选项

对于我正在编写的指令的需要,我必须动态构造ng-options表达式.这是我试过的.

在我的指令中:

// ... scope.labelProperty = 'name';
scope.selectOptions = "l." + scope.labelProperty + " for l in list";
Run Code Online (Sandbox Code Playgroud)

在我的html模板中:

<select class="form-control"
    ng-model="selected.available"
    ng-options="{{ selectOptions }}"
    multiple
    size="5"></select>
Run Code Online (Sandbox Code Playgroud)

这导致ng-options采用正确的表达式"l.name for l in list"但选项不显示.

请问,任何想法?

javascript select dynamic angularjs ng-options

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

根据选择值筛选angularjs

这看起来应该很容易,但我是棱角分明的新手并没有很好地理解这个概念.我希望在数据集上运行ng-repeat,然后能够使用完全相同的数据集根据选择框中的选定选项过滤结果.

我创建了一个选项数组,并将它们分配给变量$ scope.OurTeamCategories.

angular.module('app', [])
.controller('Main', ['$scope', function($scope) {
   $scope.ourTeamCategories = [
        {"id":18,"title":'Management'},
        {"id":19,"title":'Administration'},
        {"id":21,"title":'Designers'},
        {"id":22,"title":'Accounts'},
    ]
}]);
Run Code Online (Sandbox Code Playgroud)

然后在HTML文件中,我使用ng-options动态创建选择框,并使用ng-repeat创建这些类别的列表.这一切都很好,但现在我希望能够过滤

<div ng-app="app">
  <div ng-controller="Main">
    <select name="show-filter"  ng-model="catFilter" ng-options="category.title for category in ourTeamCategories">
          <option value="{{category.id}}"></option>
      </select>

  <li ng-repeat="cat in ourTeamCategories">
      <h3>{{cat.title}}</h3>
      <!-- for testing -->
     <b>input: {{catFilter.id}}</b> - - ID: {{cat.id}}
  </li>
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我以为我可以通过以下方式运行过滤器,但是我收到了一个错误.谁能告诉我我做错了什么?

<li ng-repeat="cat in ourTeamCategories | filter {cat.id:catFilter.value}">
Run Code Online (Sandbox Code Playgroud)

我在这里创建了一个plunker:http://plnkr.co/edit/YwHknAm3X2NUdxDeUjS8?p = preview

angularjs angularjs-ng-repeat ng-options angular-filters

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

如何在ng-options中设置默认值

我可以在angularjs中设置一个默认值的下拉列表,

 <select name="repeatSelect" id="repeatSelect" ng-model="repeatSelect" ng-init=" repeatSelect = data[0].id">
    <option ng-repeat="option in data" value="{{option.id}}">{{option.name}}</option>
 </select>
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现相同的使用ng-options?我惶恐不安

 <select name="repeatSelect" 
   id="repeatSelect" 
   ng-model="repeatSelect"
   ng-init=" repeatSelect = option.id"  
   ng-options="option.name for option in data track by option.id">
</select>
Run Code Online (Sandbox Code Playgroud)

但没用.样本小提琴就在这里

javascript html-select angularjs ng-options ionic-framework

11
推荐指数
2
解决办法
4万
查看次数

如果没有ng-model,角度选择不起作用

有没有人知道为什么在Angular中,如果没有ng-model,选择选择器不起作用?

<select ng-model="bla_bla" ng-options="obj.value as obj.key for obj in languages"/>
<select ng-options="obj.value as obj.key for obj in languages"/>
Run Code Online (Sandbox Code Playgroud)

上面的第一行代码将起作用,而第二行代码将不起作用.为什么???

谢谢!

select angularjs ng-options

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

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万
查看次数

angularjs - 添加多个硬编码选项以选择带有ng-options的框

我有一个填充的选择框ng-options.我知道您可以手动添加默认选项,如下所示:

<select ng-model="selectedAddress" ng-init="selectedAddress = selectedAddress || address_dropdown[0].value" ng-change="handleStoredAddressClick2()" ng-options="a.dropdown_display for a in address_dropdown"  id="address_dropdown">
    <option value="" ng-selected="selected">Add a new address</option>
</select> 
Run Code Online (Sandbox Code Playgroud)

是否有任何方式(角度)添加多个选项?客户端现在希望使用第一个默认选项"从地址中选择",并在上面显示所有填充的选项后,将上面显示的"添加新地址"选项作为列表中的最后一个选项ng-options.

(我知道我可以使用jQuery添加该选项,但如果可能的话,宁愿保持所有角度.)

angularjs ng-options

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

angular-translate ad ng-options

我正在尝试翻译选择下拉列表,我不喜欢我这样做的方式,因为它很麻烦,它绕过了整个角度转换框架.

区域设置数据看起来像{"lang":{"label":"text","select":{"k1":"var1","k2":"var2"}}}如果我选择"选择"在控制器范围内的成员,我可以在select的ng-options中写一些类似"k as for(k,v)in scopedvar"的内容.

基本上我喜欢翻译来做语言解决,然后开始退出并返回我的选项的本地化地图.如果它有意义,例如:"k为v(for,k,v)in'select'| translate",但当然不会.

有没有人面临(并解决)此问题?

TIA,Edoardo

ng-options angular-translate

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

使用ng-options过滤大写字母

我没有找到如何大写或大写的第一个字母ng-options.

我的选择:

<select ng-model="company.currency.code" ng-options="currency.code as currency.code for currency in currency_list>
</select>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

$scope.currency_list = [
    {
        code: 'eur'
    }, {
        code: 'usd'
    }
];
Run Code Online (Sandbox Code Playgroud)

我想打印"EUR","USD"或"Eur","Usd"而不用手动循环我的对象.

这有可能吗?

javascript angularjs ng-options

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

从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万
查看次数

AngularJS下拉列表未显示选定值

在角度下拉列表中显示选定值时遇到问题.当我给这样的时候它起作用

$scope.selectedItem = $scope.items[1];
Run Code Online (Sandbox Code Playgroud)

如果我直接给出那个价值,那就不行了

$scope.selectedItem = { name: 'two', age: 27 };
Run Code Online (Sandbox Code Playgroud)

HTML:

<html ng-app="app">
  <body>
    <div ng-controller="Test">
      <select ng-model="selectedItem" ng-options="item.name for item in items">
      </select>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

JS:

var app = angular.module('app',[]);
app.controller('Test',function($scope){
   $scope.items = [{name: 'one', age: 30 },{ name: 'two', age: 27 },{ name: 'three', age: 50 }];
  $scope.selectedItem = $scope.items[1];
});
Run Code Online (Sandbox Code Playgroud)

CODEPEN: http ://codepen.io/anon/pen/zxXpmR

解:

谢谢samir-das.我根据你的建议修好了.

var choosen_value = { name: 'two', age: 27 };
angular.forEach($scope.items, function(item){
  if(angular.equals(choosen_value, item)){
    $scope.selectedItem = item; …
Run Code Online (Sandbox Code Playgroud)

javascript arrays json angularjs ng-options

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