Search code examples
angularjsangular-schema-form

Could not display angular schema form in modal pop up


I am trying to make a form as a angular-schema-form from the json data. My scenario is that,I have a grid for which i am using ng-grid for that. So on every row of the grid I have a edit button which allows the user to edit the row data.On click of edit Button a modal pop up appears .So here is where I am desing my modal popup form as an angular-schema-form.Here is what I have tried.

This is my edit button template in a grid

<div class="ui-grid-cell-contents">
  <button type="button"
     class="btn btn-xs btn-primary"
     ng-click="editRow(grid,row);">

  </button>
</div>

My modal pop up Template is like

<div>
  <div class="modal-header">
      <h3 class="modal-title">Edit Row</h3>
  </div>
  <div class="modal-body">
    <form sf-schema="schema" sf-form="form" sf-model="entity"></form>
  </div>
  <div class="modal-footer">
      <button class="btn btn-success" ng-click="save()">Save</button>
      <button class="btn btn-warning" ng-click="$close()">Cancel</button>
  </div>
</div>

In my js file i have coded as below,This is present in Main Controller

 $scope.editRow = function (grid, row) {
        $modal.open({
            templateUrl: 'PopUpTemplate.htm',
            controller: function ($scope,$modalInstance,UserPopUpSchema, grid, row) {
               schema = UserPopUpSchema;
               entity = angular.copy(row.entity);
               form = [
           'FullName',
           'UserName',
           'Password',
           'EmailId',
           'phNum'
           ];


            },
            resolve: {
                grid: function () { return grid; },
                row: function () { return row; },
                UserPopUpSchema: function () {
                    return UserPopUpSchema;
                }
            }
        });
    };
} ]);

Here user pop up schema is a constant like below:

app.constant('UserPopUpSchema', {
    type: 'object',
    properties: {
        FullName: { type: 'string', title: 'FullName' },
        UserName: { type: 'string', title: 'UserName' },
        Password: { type: 'string', title: 'Password' },
        EmailAddress: { type: 'string', title: 'EmailId' },
        Phone: {type:'string',title:'phNum'}
    }
});

I have added js files correctly as given in the angular -schema-form documentation.But I could not display angular-schema-form.

Appreciate your help


Solution

  • So here I have replaced my form in modal pop-up

     form = [
               'FullName',
               'UserName',
               'Password',
               'EmailId',
               'phNum'
               ];
    

    with

    form["*"];
    

    Probably it might be a syntax error.

    And I have to access form,model,schema with scope dependency in a controller as $scope.form,$scope.model,$scope.schema