我有这段代码
<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-repeat
到ng-options
时。
我有4个选择1,2,3并且空白我想删除空白我按照我发布的链接上的指南/答案我的问题,我的部分的差异是我有一个动态列表和当新创建列表时。它永远不会在使用ng-option时包含空白,但它解决了我的问题,从动态列表中获得初始默认值,如果我使用ng-repeat我没有初始值但是删除选项中的空白。我希望删除空白选项并同时从动态列表中获取初始值。
我可以设置默认值但不能删除空白选项。
有人可以帮忙吗?感谢。
答案 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]是列表的索引号。您可以使用值或名称,具体取决于对象上存在的参数。