我搜索了Google,但无法找到答案......
我有md-select
看起来像这样:
<md-input-container class="md-block" flex-gt-sm>
<label>Type</label>
<md-select ng-model="f.type" placeholder="Type" select-clear>
<md-option ng-repeat="f in ctrl.type" value="{{f}}">{{f}}</md-option>
</md-select>
</md-input-container>
ctrl.type
在controller
:
this.type = ["type1","type2"];
我也将md-select
值发送到对象数组,如下所示:
var data = {
kind: $scope.f.type,
};
然后我正在执行将http.post
对象发送到api的data
。
现在这是我的问题。我希望当md-select
为空时,用户发送data
对象,而不是获取错误Cannot read property 'type' of undefined
,而只是发送数据但其值为{ {1}}代替null
,然后在填充undefined
时,它只是将值发送到api。我该怎么办?我需要进行表单验证吗?有没有一种简单的方法可以做到这一点,因为我必须发送大约10个md-select
。
谢谢。
答案 0 :(得分:1)
您可以使用类似
之类的内容在md-option上创建一个空/虚拟选项<option value='null'></option>
<option ng-repeat="f in type" value="{{f}}">{{f}}</option>
但是我认为,因为你没有初始化你的f.type
,所以空元素会进入浏览器。如果您正确初始化f.type
,则甚至不会获得该空元素及其undefined
值。您可以按如下所示初始化。
<select ng-model='f.type' ng-change='toggleSelection()' ng-init='f.type = type[0]'>
答案 1 :(得分:0)
尝试使用ng-options而不是ng-repeat。
例如:
<md-select ng-model="f.type"
placeholder="Type" select-clear
ng-options="f as f in ctrl.type">
</md-select>