我无法为所选项目设置默认值,因为我知道我应该从json()中获取默认值,使用该选定值来显示另一个表单。
在我的控制器中,我以这种方式设置了选择:
.controller('attributeFacetCtrl', function ($scope, tabsService, $location, contentService, attribute) {
$scope.attribute = attribute;
$scope.types = [{
val: 'terms'
}, {
val: 'continuous'
}];
$scope.selected = $scope.attribute.facet.data.type;
$scope.isTerms = false;
$scope.validateFrom = function() {
var chk = $scope.selected.val;
if (chk === 'terms') {
$scope.isTerms = true;
} else {
$scope.isTerms = false;
}
};
})
$ scope.attribute.facet.data.type ="条款"
的结果在我看来,我有这个
<div class="form-group">
<label class="wk-field-label">
<i class="icon-asterisk wk-prefield wk-mandatory"></i>
Type
</span>
</label>
<select class="wk-field-input" ng-model="selected"
ng-options="typeValue as typeValue.val for typeValue in types"
ng-change="validateFrom()"
required></select>
</div>
<div ng-if="isTerms" ng-repeat="orders in attribute.facet.data.order">
<div>
<label class="wk-field-label">
<i class="icon-asterisk wk-prefield wk-mandatory"></i>
Order
</span>
</label>
</div>
</div>
答案 0 :(得分:1)
问题是您将$scope.selected
设置为字符串(“条款”),但是当您加载ng-options
时,它会使用val
的对象加载它属性。
如果您不一定需要$scope.selected
作为对象,那么您可以将ng-options
更改为以下内容:
ng-options = "typeValue.val as typeValue.val for typeValue in types"
如果您需要$scope.selected
成为具有val
属性的对象,则需要适当设置其初始值,而不是将其设置为字符串以设置默认选择。
答案 1 :(得分:0)
由于您希望按字符串设置元素,请将select
元素更改为以下内容:
<select
class="wk-field-input"
ng-model="selected"
ng-options="typeValue as typeValue.val for typeValue in types"
ng-change="validateFrom()"
required
>
</select>
您可以在此处详细了解如何使用as
:https://docs.angularjs.org/api/ng/directive/ngOptions
希望有所帮助!