2017-03-13 13 views
0

私はブートストラップアコーディオンにフォームを追加しようとしていて、テキスト値を投稿しようとしています。アコーディオンなしではフォームは問題なく動作します。私がアコーディオンにフォームを追加すると、私はanglejsコントローラにテキストボックスの値を渡すことができません。私は値を渡すことができないので、基本的に私はCRUD操作を実行することができません。問題に関連する最小コード。Angularjsはアコーディオンからの粗い操作を実行できません

main.htmlを

<div ng-controller="myController"> 
<accordion class="accordion" close-others="oneAtATime"> 
     <accordion-group ng-repeat="group in groups" is-open="status.isOpen[$index]" > 
      <accordion-heading> 
       {{group.groupTitle}} <i class="fa chevron-icon" ng-class="{'fa-chevron-down': status.isOpen[$index], 'fa-chevron-right': !status.isOpen[$index]}"></i> 
      </accordion-heading> 
      <div ng-include="group.templateUrl"></div> 
     </accordion-group> 
    </accordion> 
</div> 

controller.js

App.controller('myController', ['$scope', 'Parts', function($scope, Parts) { 
var original = $scope.parts; 

$scope.submit = function() { 
if ($scope.parts.a_id == null) { 
$scope.createNewPart(); 
} else { 
$scope.updatePart(); 
} 
}; 
$scope.createNewPart = function() { 
Parts.resource1.create($scope.parts); 
}; 
$scope.updatePart = function() { 
Parts.resource2.update($scope.parts) 
}; 
$scope.oneAtATime = true; 

       $scope.groups = [{ 
        groupTitle: "ADD 1", 
        templateUrl: "file1.html" 
       }, { 
        groupTitle: "ADD 2", 
        templateUrl: "file2.html" 
       }]; 

       $scope.status = { 
        isOpen: new Array($scope.groups.length) 
       }; 

       for (var i = 0; i < $scope.status.isOpen.length; i++) { 
        $scope.status.isOpen[i] = (i === 0); 
       } 

} ]); 

file1.html最初

  <div> 
      <form name="myForm" ng-submit="submit()"> 
      <div class="row"> 
      <label class="col-md-2 control-lable" for="part">Add1</label> 

      <input type="text" ng-model="parts.part" id="part" required /> 

      </div> 
      <div class="row"> 

      <input type="submit" value="{{!parts.id ? 'Add' : 'Update'}}" ng-disabled="myForm.$invalid"> 

      </div> 
      </form> 

//inside table 
     <tr ng-repeat="a in availableparts > 
    <td>{{a.id}}</td> 
    <td>{{a.apart}}</td> 
    <td><button type="button" ng-click="editPart(a.id)" >Edit</button> 
    <button type="button" ng-click="deletePart(a.id)">Remove</button> 
    </td> 
    </tr> 
    </div> 
+0

idをしてくださいと言って、空のオブジェクト{}$scope.partsを設定するために、あなたが$scope.parts.idにアクセスするときにnullを持つことになり、代わりにエラーの、ポスト全体コントローラ –

+0

は、編集されたコントローラを確認してください。また、私はテーブルのすべての部品を一覧表示します。その中で、私はすべての部分名を取得していますが、ID列は空です。しかし、私は応答でid値を取得します。そのテーブルには表示されません。 – user7620991

+0

追加コードが必要な場合は、私にお知らせください。 – user7620991

答えて

0

、次のものが必要undefined