AngularJS:如何为选择元素设置默认值?

10 浏览
0 Comments

AngularJS:如何为选择元素设置默认值?

我对AngularJS几乎一无所知,我正在使用select标签进行选择。我想要的是在我的select标签中设置一个默认值(即admin),以定义我的用户角色,它们是agentadmin。以下是我的HTML代码:\n



\n以下是我的控制器代码:\n

controllers.controller('StaffMembersNewCtrl', function ($scope, StaffMembers, $state) {
    $scope.roles = ['admin', 'agent'];
    StaffMembers.query(function(responce) {
        $scope.staffs = responce;
    });
    $scope.SaveNewStaffMember = function(){
        StaffMembers.save($scope.newStaff, function(){
        $scope.addAlert('success', '新员工已成功添加!');
        $state.go('staffMembersSettings');
     });
    };
});

\n看起来好像可以工作,我有一个默认值,并且数据被绑定,但是浏览器中出现了一个错误。\n

Error: [ngModel:nonassign] 表达式 'newStaff.role_name='agent'' 不可赋值。元素:
    

这段代码中,使用ng-options指令为选择元素提供选项列表。ng-model指令用于绑定选择的值。ng-init指令用于设置ng-model的默认值,通过设置newStaff.role_name的值为roles[1]来指定默认选项。

感谢这个精确的解决方案,虽然在不进行测试时无法使用。

0
0 Comments

问题出现的原因是ng-model并不是用来定义默认值的,它是用来定义存储选择的位置的。解决方法是将默认值定义在控制器中,然后在ng-model中引用它。以下是代码示例:

HTML

<select class="form-control" ng-options="value for value in roles" ng-model="newStaff.role_name"></select>

CONTROLLER

$scope.newStaff = {role_name: $scope.roles[0]};

这是一个稳定的解决方案,谢谢。

0