2016-10-22 14 views
1

私はフレームワークとしてSails.jsを使用するNodeJSプロジェクトに取り組んでいます。TypeError:nullのプロパティ '0'を読み取ることができません

私が達成しようとしているのは、グループごとのアクセス許可がチェックボックスで設定されているアクセス許可システムです。私はAngularJSで典型的なフォームを使用しています。

私は私の「Sumbit」ボタンをクリックすると、それは私のブラウザのコンソールで次のエラーがスローされます。

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は、コードを忘れ

閉じ括弧がありますが、投稿で正しくフォーマットされていません。

そして最後に、ここでは、フォーム自体のコードです:

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

は、これは間違ってcreateGroupFormだけではなくにcreateGroupに$スコープを使用して私が解決しました。修正されたコードのビットは以下の通りです:

の代わりに:

$scope.createGroupForm.canViewUsers 

用途:

$scope.createGroup.canViewUsers 
関連する問題