正确处理选择角度

时间:2014-02-17 13:55:57

标签: javascript angularjs html-select

我是棱角分明的新人。我把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,但它似乎没有生效...

2 个答案:

答案 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的更多信息。

相关问题