如何在JavaScript中获取复选框的值?

时间:2015-06-16 11:21:13

标签: angularjs

请原谅这个可能相当简单的问题,但我必须对客户请求进行一些小改动,并且不要真正了解AngularJS。

this example中,使用HTML代码中的这些{{ .. }}指令请求复选框的值 - 但是如何在JavaScript中访问它?

这是我试图从中获取价值的复选框:

<input ng-switch-when="java.lang.Boolean" type="checkbox" 
       ng-model="nounTypesOnly" required                            
       ng-true-value="1" ng-false-value="0"></input>

filter()方法中,我尝试访问这样的值:

$scope.filter = function(topicIndex) {

    // Already tried: 
    //     $scope.$digest() 

    // $scope.nounTypesOnly is undefined at this point!
    $scope.filterRequest.nounTypesOnly = $scope.nounTypesOnly;
    $scope.doFilter();
};

如果我调试此$scope.nounTypesOnly未定义。为了从输入字段nounTypesOnly获取该值,我需要更改什么?

1 个答案:

答案 0 :(得分:0)

您遇到了范围继承的问题。

<ng-switch-when>将产生一个新的范围。因为ng-model="nounTypesOnly"与这个孤立的范围绑定而不是外部范围。

尝试将模型值分配给复杂对象,即ng-model="foo.nounTypesOnly"。这可以确保在外部作用域上初始化foo = {}时,可以通过给定名称在外部作用域中访问它。

实施例

在您的控制器中,执行以下操作:

function MyController($scope) {
   $scope.data = {};
}

在模板中,执行以下操作:

<input ng-switch-when="java.lang.Boolean" ng-model="data.nounTypesOnly" />

这样可以确保nounTypesOnly正确传播回外部(即控制器)范围。