我有一个简单的select元素,我正在尝试初始化该值,但由于某种原因它失败了,即没有取得初始值
<select class="select-form-control"
ng-model="lossGainProb"
ng-options="item.display for item in possibility track by item.value"
ng-init="EventDetails.lossGainProb">
$scope.possibility = [{
display: '0%',
value: 0
}, {
display: '5%',
value: 5
}];
$scope.EventDetails.lossGainProb = 5;
答案 0 :(得分:1)
根据给定的代码,我创建了小型工作演示here
<div ng-app="myApp" ng-controller="myCtrl">
<select class="select-form-control" ng-model="lossGainProb"
ng-options="item.value as item.display for item in possibility">
</select>
</div>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.possibility =[ {
display : '0%',
value : 0
}, {
display : '5%',
value : 5
}];
$scope.lossGainProb = $scope.possibility[1].value;
});
答案 1 :(得分:0)
这将在不使用ng-init
的情况下工作 - 在控制器中初始化:
$scope.lossGainProb = {};
$scope.lossGainProb.value = 5;
如果可能,不应使用 ng-init
- https://docs.angularjs.org/api/ng/directive/ngInit。
答案 2 :(得分:0)
您需要通过angular跟踪列表的跟踪项。试试这个:
$scope.possibility = [{
display: '0%',
value: 0
}, {
display: '5%',
value: 5
}];
$scope.EventDetails.lossGainProb = $scope.possibility.filter(function(item){ return item.value === 5})[0];
答案 3 :(得分:0)
我看到两个错误:
您错误地使用了ngInit
。它没有为ngModel
指令指定初始绑定,它是在初始化作用域后根据作用域计算的表达式。要指定初始模型绑定,您需要类似
<select ng-init="lossGainProb = EventDetails.lossGainProb"></select>
另一种(更好的)方法是直接在控制器中指定它,例如
$scope.lossGainProb = $scope.EventDetails.lossGainProb;
您的ngModel
受到整个&#34;可能性的影响&#34;对象而不仅仅是value
属性。我假设您只想要value
作为您的模型值。在这种情况下,您应该将ngOptions
设置为
<select ng-options="item.value as item.display for item in possibility"></select>
这指定ngModel
应绑定到item.value
并item.display
用作标签。
将这些放在一起,select
应该是
<select class="select-form-control"
ng-model="lossGainProb"
ng-options="item.value as item.display for item in possibility"
ng-init="lossGainProb = EventDetails.lossGainProb">
</select>
Here是一个有效的普通人。
答案 4 :(得分:0)
另一种方法是这个:
<select class="select-form-control" ng-init="lossGainProb = possibility[1].value" ng-model="lossGainProb" ng-options="item.value as item.display for item in possibility"> </select>