在动态选项对象上删除Angular上的空白选项

时间:2017-12-18 02:39:15

标签: html css angularjs html5

我有这段代码

<select ng-model='item.data.choice' >
  <option ng-if='item.data.simple_allow_blank == false' ng-show='choice.name' ng-repeat='choice in item.data.simple_choices' value="{{choice.name}}" ng-disabled="$parent.controllerAction == 'show'">{{choice.name}}</option>
</select>

它显示系统管理员在下拉框中输入的3个选项。它显示没有空白的选择。

问题是如果我想设置默认值(例如choice[0]),它会添加一个空白值。

this question 转换为ng-repeatng-options时。

我有4个选择1,2,3并且空白我想删除空白我按照我发布的链接上的指南/答案我的问题,我的部分的差异是我有一个动态列表和当新创建列表时。它永远不会在使用ng-option时包含空白,但它解决了我的问题,从动态列表中获得初始默认值,如果我使用ng-repeat我没有初始值但是删除选项中的空白。我希望删除空白选项并同时从动态列表中获取初始值。

我可以设置默认值但不能删除空白选项。

有人可以帮忙吗?感谢。

2 个答案:

答案 0 :(得分:0)

You have to filter data in js file and create a new array that you will render it in html.let say you are getting data in variable **item.data.simple_choices**(as you have written it in ng-repeat)then your function would be.

var data = item.data.simple_choices;
var filteredArray = [];
data.filter(function(item){
  if(item.name!=''){
filteredArray.push(item)
}
})

答案 1 :(得分:0)

经过几个小时的网络搜索和大量的反复试验后,我终于得到了正确答案。

<select ng-model='model'>
        <!-- correct binding -->
          <option ng-show='choice.name'  ng-repeat='choice in object' value="{{choice.name}}" ng-selected='model = object[0].name'>{{choice.name}}</option>
      </select>

代码很简单,但这种格式很有用,因为object是一个具有列表值的对象。正如您所见,我确实将其分配给模型,因为model是在视图中使用的变量。 [0]是列表的索引号。您可以使用值或名称,具体取决于对象上存在的参数。