选择标签,ng-model没有显示正确的选项

时间:2017-01-09 05:36:00

标签: angularjs

所以这是我的代码:

<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,在这种情况下可能是更好的做法并且会解决我的问题,但是,我仍然想要了解发生了什么

3 个答案:

答案 0 :(得分:2)

您需要在控制器中设置$ scope变量

$scope.institution ={};
$scope.institution.data_collection = '109';

<强>样本

&#13;
&#13;
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;
&#13;
&#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
}