所以这是我的代码:
<select ng-model="institution.data_collection" class="form-control" required>
<option value="" disabled>Please Select</option>
<option value="109">24 Hours</option>
<option value="107" onselect="">School Hours</option>
</select>
institution.data_collection
值等于109
,我希望选择24 Hours
选项,因为它的值为109
。但是我发现在select标签中添加了一个新选项:
<option value="? number:109 ?"></option>
通过SO问题我发现大多数人在控制器中的数组中定义了options
,在这种情况下可能是更好的做法并且会解决我的问题,但是,我仍然想要了解发生了什么
答案 0 :(得分:2)
您需要在控制器中设置$ scope变量
$scope.institution ={};
$scope.institution.data_collection = '109';
<强>样本强>
var app = angular.module("app", []);
app.controller("ListCtrl", ["$scope",
function($scope) {
$scope.institution ={};
$scope.institution.data_collection = '109';
}
]);
&#13;
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@1.4.7" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app='app'>
<div ng-controller="ListCtrl">
<select ng-model="institution.data_collection" class="form-control" required>
<option value="" disabled>Please Select</option>
<option value="109" ng-selected="">24 Hours</option>
<option value="107" onselect="">School Hours</option>
</select>
</div>
</body>
</html>
&#13;
答案 1 :(得分:1)
制作$scope.institution.data_collection = "109"
,它必须有效。默认情况下,任何HTML元素都将其值设置为字符串而不是数字,因此您需要将字符串值分配给其模型才能正常工作。其他选项是使用ng-options,然后您就可以将数值赋值为模型。
答案 2 :(得分:1)
<select ng-model="institution.data_collection" ngChange="expression()" class="form-control" required>
<option value="?">Please Select</option>
<option value="109">24 Hours</option>
<option value="107">School Hours</option>
</select>
你不应该写&#34; onselect&#34;对于选项,您必须将该属性指定为选择标记。
脚本:
$scope.expression = function (){
$scope.institution // selected value
// write your logic here
}