2016-10-22 8 views
1

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 

합니다.
여기 폼 여기

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; 
    }) 
에 정보 및 소식을 잡는이다

EDIT 코드 분실

닫는 괄호가 있지만 게시물에서 올바르게 형식이 지정되지 않습니다. 이 잘못 대신이 createGroup의 createGroupForm에 $ 범위를 사용하여 나에 의해 해결되었다

<!--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

배열처럼 하나의 값에 액세스하는 것처럼 보이지만 코드 스 니펫 없이는 아무 것도 말할 수 없습니다. –

답변

0

: 마침내 여기

그리고

은 양식 자체에 대한 코드입니다. 수정 된 코드 비트는 다음과 같습니다 :

대신 :

$scope.createGroupForm.canViewUsers 

사용 :

$scope.createGroup.canViewUsers 
관련 문제