2015-06-22 99 views
0

我使用以下select。目前,我在开始时选择了空白选项。要避免angularJS中的这些空白选项,我想要预先选择select中的第一个选项。但它不起作用。我得到'无法读取属性'的'未定义'的条件。感谢您的提示!预先选择选项不起作用

HTML

<select ng-show="rule.field=='Cardiology'" ng-options="c.name as c.name for c in conditions" ng-model="rule.condition" class="form-control input-sm selectCondition"></select> 

JS模型

scope.conditions = [{ 
     name : 'contains', 
}, { 
     name : 'doesn´t contain', 
}]; 

$scope.conditions = {type : $scope.conditions[0].value}; 
+0

这是模糊的,你正在使用scope.conditions和$ scope.conditions(通知$) –

+0

你有scope.conditions = [{},{}],但你do $ scope.conditions = {type:$ scope.conditions [0] .value};它应该是$ scope.conditions = {type:scope.conditions [0] .value}; – Jax

+0

[引自ngOptions参考](https://docs.angularjs.org/api/ng/directive/ngOptions) '默认情况下,ngModel通过引用观察模型,而不是值。将任何输入指令绑定到作为对象或集合的模型时,这很重要。'你需要设置'$ scope.condition = $ scope.conditions [anyConditionYouWantToSet]' – nilsK

回答

1

绑定值获得选择。

尝试这样

$scope.rule.condition=$scope.conditions[0].value; 
+0

不幸的是,它不起作用我得到一个错误:TypeError:无法读取Scope.compile.scope.changeParameter中未定义 的属性“规则” angular.js:357) at $ parseFunctionCall(angular.js:12345) at Scope。$ get.Scope。$ eval(angular.js:14401) at angular.js:20541 at angular。 JS:23184 在的forEach(angular.js:323)。在 $$ NgModelController writeModelToScope(angular.js:23182) 在writeToModelIfNeeded(angular.js:23175) 在angular.js:23169 在validationDone(角。 js:23097) – mm1975

+0

认真吗?你的$范围没有定义?你需要解决这个问题.. 答案正是你想要的。 –