2015-05-14 47 views
0

我有选择标记的HTML,使用此代码:如何使用angularjs区分HTML选项?

<div ng-controller="Models"> 
    <select ng-model="myModel" ng-options="Model.name for Model in Models" class="form-control"></select> 
    {{ {selected_Model:myModel.name} }} {{ {selected_Model:myModel.id} }} 
</div> 

,我希望它仅仅myModel.id==1显示。

我该怎么办?

回答

0

我觉得这个问题需要更多的解释。

您的意思是您想要为模型中的每个模型显示一个选择,但只有如果 model.id == 1?

你可以用过滤器做到这一点,而模型正在写入你的选择框中的页面,这个过滤器检查它们是否有.id == 1,如果TRUE则允许它被写入选择。

但我想象一下,这意味着你的选择框中只有1个项目,因为重复的id在对象中是坏消息。

angular.module('YOURAPPNAME', []) 
.filter('myModelFilter', function() { 
    return function(myModel) { 
     if (myModel.id == 1) { 
     return myModel; 
     } 
    }; 
}) 

<div ng-controller="Models"> 
    <select ng-model="myModel" ng-options="Model.name for Model in Models | myModelFilter" class="form-control"></select> 
    {{ {selected_Model:myModel.name} }} {{ {selected_Model:myModel.id} }} 
</div> 

编辑:体育。

调用控制器和控制器中的对象“模型”和“模型”令人困惑,我建议选择一个不同的命名约定,因为AngularJS是一个MVWhatever框架,术语“模型”与你有着非常不同的含义'正在使用它。

0

,你可以在此一边HTML本身通过过滤器严格检查真像ng-options="Model.name for Model in Models | filter: {id: 1}: true"

标记

<div ng-controller="Models"> 
    <select ng-model="myModel" class="form-control" 
     ng-options="Model.name for Model in Models | filter: {id: 1}: true" > 
    </select> 
    {{ {selected_Model:myModel.name} }} {{ {selected_Model:myModel.id} }} 
</div> 
相关问题