TypeError:无法读取null的属性'0'

问题描述:

我正在使用Sails.js作为框架的NodeJS项目。TypeError:无法读取null的属性'0'

我想完成的是一个权限系统,其中每个组的权限都由复选框设置,我使用的是AngularJS的典型表单。

当我点击我的“透过”按钮,它在我的浏览器的控制台抛出这个错误:

angular.1.3.js:11594 TypeError: Cannot read property '0' of null 
at $parseFunctionCall (angular.1.3.js:12333) 
at callback (angular.1.3.js:22949) 
at Scope.$eval (angular.1.3.js:14383) 
at Scope.$apply (angular.1.3.js:14482) 
at HTMLFormElement.<anonymous> (angular.1.3.js:22954) 
at HTMLFormElement.eventHandler (angular.1.3.js:3011)(anonymous function) @ angular.1.3.js:11594 

任何帮助,将不胜感激。

EDIT忘记的代码:
下面是接收从形式

createGroup: function(req, res) { 
Groups.create({ 
    groupName: req.param('groupName'), 
    canViewUsers: req.param('canViewUsers'), 
    canEditUsers: req.param('canEditUsers'), 
    canPromoteToStaff: req.param('canPromoteToStaff'), 
    canViewNotes: req.param('canViewNotes'), 
    canEditPermissions: req.param('canEditPermissions') 
}); 

此处公布的信息的代码是用于该代码将捕获的信息并将其发布到创建函数

angular.module('GroupsModule').controller('GroupsController', ['$scope', '$http', 'toastr', function($scope, $http, toastr) { 

$scope.createGroup = { 
    loading: false 
    }; 

$scope.createGroupForm = function(){ 

// Set the loading state (i.e. show loading spinner) 
$scope.createGroup.loading = true; 


// Submit request to Sails. 
$http.post('/createGroup', { 
    groupName: $scope.createGroupForm.groupName, 
    canViewUsers: $scope.createGroupForm.canViewUsers, 
    canEditUsers: $scope.createGroupForm.canEditUsers, 
    canPromoteToStaff: $scope.createGroupForm.canPromoteToStaff, 
    canViewNotes: $scope.createGroupForm.canViewNotes, 
    canEditPermissions: $scope.createGroupForm.canEditPermissions 
}) 
    .then(function onSuccess(sailsResponse){ 
    window.location = '/groups'; 
    }) 
    .catch(function onError(sailsResponse){ 

    // Handle known error type(s). 
    // If using sails-disk adpater -- Handle Duplicate Key 
    var groupAlreadyExists = sailsResponse.status == 409; 

    if (groupAlreadyExists) { 
     toastr.error('That group already exists', 'Error'); 
    } 

    }) 
    .finally(function eitherWay(){ 
    $scope.createGroup.loading = false; 
    }) 

有右括号,但它们在帖子中没有正确格式化。

最后这里是窗体本身的代码:

<!--STYLES--> 
<link rel="stylesheet" href="/styles/angular-toastr.css"> 
<link rel="stylesheet" href="/styles/bootstrap.3.1.1.css"> 
<link rel="stylesheet" href="/styles/importer.css"> 
<link rel="stylesheet" href="/styles/style.css"> 
<link rel="stylesheet" href="/styles/theme.css"> 
<link rel="stylesheet" href="/styles/theme.min.css"> 
<!--STYLES END--> 
<body ng-app="DashboardModule" ng-controller="DashboardController" ng-cloak> 
<div class="bs-docs-section clearfix"> 
    <div class="row"> 
    <div class="bs-component"> 
     <nav class="navbar navbar-default"> 
     <div class="container-fluid"> 
      <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="/">Insomnia eSports</a> 
      </div> 

      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
      <ul class="nav navbar-nav"> 
       <li><a href="/groups"><i class="fa fa-users" aria-hidden="true"></i> Group Management </a></li> 
      </ul> 

      <!-- 
      <form class="navbar-form navbar-left" role="search"> 
       <div class="form-group"> 
       <input type="text" class="form-control" placeholder="Search"> 
       </div> 
       <button type="submit" class="btn btn-default">Submit</button> 
      </form> 
      --> 
      <ul class="nav navbar-nav navbar-right"> 
       <li><a href="/logout">Sign Out</a></li> 
      </ul> 
      </div> 
     </div> 
     </nav> 
    </div> 
    </div> 
</div> 

<form ng-submit="createGroupForm()" id="create-group-form" class="form-signin" name="createGroupForm"> 
    <h2 class="form-signin-heading">Create an account</h2> 
    <div class="row"> 

    <!-- Group Name --> 
     <label>Group Name</label> 
     <input type="text" class="form-control" placeholder="Group Name" name="groupName" ng-model="createGroupForm.name" ng-maxlength="25" required> 

    </div> 

    <!-- Can View Users --> 
     <label>View Users?</label> 
     <input type="checkbox" name="canViewUsers" ng-model="canViewUsers.value"> 

    <!-- Can View Users --> 
     <label>Edit Users?</label> 
     <input type="checkbox" name="canEditUsers" ng-model="canEditUsers.value"> 

    <!-- Can Promote To Staff --> 
     <label>Promote to Staff?</label> 
     <input type="checkbox" name="canPromoteToStaff" ng-model="canPromoteToStaff.value"> 


    <!-- Can Promote To Staff --> 
     <label>Can view notes?</label> 
     <input type="checkbox" name="canViewNotes" ng-model="canViewNotes.value"> 

    <!-- Can Promote To Staff --> 
     <label>Can edit permissions?</label> 
     <input type="checkbox" name="canEditPermissions" ng-model="canEditPermissions.value"> 

    <br/> 

    <!-- Disable signup button until the form has no errors --> 
    <button class="btn btn-success btn-lg btn-block" type="submit" ng-disabled="createGroupForm.$invalid"> 
    <span ng-show="!createGroupForm.loading">Create Group</span> 
    <span class="overlord-loading-spinner fa fa-spinner" ng-show="createGroupForm.loading" ></span> 
    <span ng-show="createGroupForm.loading">Preparing your new group...</span> 
    </button> 

    <input type="hidden" name="_csrf" value="<%= _csrf %>" /> 
</form> 
<!--SCRIPTS--> 
<script src="/js/dependencies/sails.io.js"></script> 
<script src="/js/dependencies/angular.1.3.js"></script> 
<script src="/js/dependencies/Base64.js"></script> 
<script src="/js/dependencies/angular-toastr.js"></script> 
<script src="/js/dependencies/compareTo.module.js"></script> 
<script src="/js/public/signup/SignupModule.js"></script> 
<script src="/js/public/groups/GroupsModule.js"></script> 
<script src="/js/private/dashboard/DashboardModule.js"></script> 
<script src="/js/public/homepage/HomepageModule.js"></script> 
<script src="/js/private/dashboard/DashboardController.js"></script> 
<script src="/js/public/groups/GroupsController.js"></script> 
<script src="/js/public/homepage/HomepageController.js"></script> 
<script src="/js/public/signup/SignupController.js"></script> 
<!--SCRIPTS END--> 
</body> 
+0

我们展示代码... – Mahi

+0

请添加相关的代码(可能是模板和控制器/组件) 。 –

+0

看起来你试图访问一个值,就像它是一个数组一样,但是再一次,没有一小段代码就不能说任何东西。 –

这是由我使用的createGroupForm,而不是仅仅createGroup $范围不正确解决。更正后的代码位低于:

相反的:

$scope.createGroupForm.canViewUsers 

用途:

$scope.createGroup.canViewUsers