我是棱角分明的新人。我把select声明为(jade语法)
select(ng-model="projectData.ProjectStatus" ng-options="c.name for c in statuses")
和状态初始化为
$scope.statuses = [
{name:'Active', value:1},
{name:'Not active', value: 0}
];
在结果选择中,未选择任何内容并将其呈现为
<select
ng-model="projectData.ProjectStatus"
ng-options="c.name for c in statuses"
class="ng-pristine ng-valid">
<option value="?" selected="selected"></option>
<option value="0">Active</option>
<option value="1">Not active</option>
</select>
如何指定我需要选择哪个选项,以及如何避免使用“?”渲染第一个选项所以我只选择了“未激活”或“激活”的选择?
请注意$ scope.projectData.ProjectStatus IS发送到1,但它似乎没有生效...
答案 0 :(得分:1)
您不应手动使用选项标记,而是尝试使用以下代码使其正常工作
<body ng-controller="MainCtrl" >
<div>
<select ng-model="projectData.ProjectStatus" ng-options="c.value as c.name for c in data"></select>
</div>
<script>
var app = angular.module('demo', []);
alert(app);
app.controller('MainCtrl', function ($scope) {
$scope.data = [{ name: 'Active', value: 1 }, { name: 'Not active', value: 0 }];
$scope.projectData = { ProjectStatus: 0 }
});
</script>
</body>
</html>
答案 1 :(得分:0)
您可以通过在控制器中设置模型值来设置选择的默认值:
$scope.projectData.ProjectStatus = $scope.statuses[0];
另外,请注意,在html中呈现的选项值实际上是您在ng-options
中传递的数组的索引。
有关API Doc的更多信息。