Кендо Grid обновление и вставка с JayData и угловой

Я попытался использовать сетку кендо с помощью операции crud, которая взаимодействует с Jaydata и angularjs для создания источника данных и реализации операции Crud. Но когда я обновляю или создаю запись после отправки на сервер, у меня возникает ошибка в kendo.js файла jayadataModules.because из-за функции сохранения of entity in angular (в jaydataModules) возвращает объект обещания, который содержит catch, finaly, затем функцию и не имеет функции fail.

вот мой контекст джайдаты:

(function(global, $data, undefined) {
        $data.Entity.extend('ComplexEntity', {
              'Name': { 'type': 'Edm.String' },
              'Created': { 'type': 'Edm.DateTime', 'nullable': false, 'required': false },
              'Index': {'key':true,'computed': true, 'type': 'Edm.Int32', 'nullable': false, 'required': true },
              'LargeNum': { 'type': 'Edm.Int64', 'nullable': false, 'required': true }
          });

         $data.generatedContexts = $data.generatedContexts || [];
         $data.generatedContexts.push(TestContext.Container);

    })(window, $data);

app.js:

var app = angular.module('app', ['jaydata']);

DataSource.js:

app.factory('dataSource', ['$data', function ( $data) {

    return {
        get: function (serviceUri) {
            debugger;
            var context = new $data.initService(serviceUri);
            return context;
        }
    };
}]);

грид-directive.js:

app.directive('crudGrid', function () {

    return {
        restrict: 'A',
        scope:{
            ds:'=',
        },

        controller: function ($scope,$element,$attrs, $data, dataSource) {

            serviceUri = '/odata';
            var tag = $element;
            var context = dataSource.get(serviceUri);
            context.then(function (db) {

                ds = db.ComplexEntity.asKendoDataSource();
                kendo.init($("#" + tag[0].id));

            }).fail(function (args) {
               //some code here 
            });
        }
    }
});

ComplexEntityController:

public class ComplexEntityController :ODataController
    {
      [Queryable]
        public IQueryable<ComplexEntity> Get(ODataQueryOptions<ComplexEntity> options)
        {
            return complexList.AsQueryable();
        }

         public HttpResponseMessage Post(ComplexEntity entity)
        {
            if (ModelState.IsValid)
            {
                // some code here 

                return Request.CreateResponse<ComplexEntity>(entity);
            }

            else
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
        }

         public ComplexEntity Patch(int key, Delta<ComplexEntity> patch)
        {
            var entity = complexList.First(t => t.Index == key);

            patch.Patch(entity);

            return entity;

        }
  }

Index.cshtml:

<link href="~/Content/kendo/2013.1.514/kendo.common.min.css" rel="stylesheet" /> 
<link href="~/Content/kendo/2013.1.514/kendo.default.min.css" rel="stylesheet" /> 
<link href="~/Content/kendo/2013.1.514/kendo.rtl.min.css" rel="stylesheet" />

<script src="~/Scripts/angular-1.2.0-rc.2/angular.js"></script>
<script src="~/Scripts/datajs-1.0.3.min.js"></script> <script src="~/Scripts/jaydata-1.3.6/jaydata.js"></script> 
<script src="~/Scripts/jaydata-1.3.6/jaydatamodules/deferred.js"></script> 
<script src="~/Scripts/jaydata-1.3.6/jaydatamodules/angular.js"></script> 
<script src="~/Scripts/kendo/2013.1.514/kendo.all.min.js"></script> 
<script src="~/Scripts/kendo/2013.1.514/kendo.web.min.js"></script> 
<script src="~/Scripts/kendo/2013.1.514/kendo.aspnetmvc.min.js"></script> <script src="~/Scripts/jaydata-1.3.6/jaydatamodules/kendo.js"></script> 
<script src="~/Scripts/ViewModels.js"></script> <script src="~/Scripts/App/app.js"></script> <script src="~/Scripts/App/Services/DataSource.js"></script> 
<script src="~/Scripts/App/Controller/FillGrid.js"></script> 
<script src="~/Scripts/App/Directives/grid-directive.js"></script>



<div class="k-rtl" style="margin-right:10px; width:1000px;float:right;">

    <div id="mvvmGrid" crud-grid data-role="grid"
         data-selectable="true" data-height="450"
         data-sortable="true"
         data-editable="inline"
         data-filterable="true"
         data-toolbar='["create", "save", "cancel"]'
         data-columns='[
                                        { field: "Name",  width: "180px" },
                                        { field: "Created", width: "200px" },
                                        { field: "LargeNum", width: "180px" },
                                        { field: "Index",hidden:true },
                                        { command :["edit", "destroy", "update"]}
                                      ]'
         data-pageable="{ refresh: true, pageSizes: true }"
         data-source="ds" />
    </div>
</div>

когда я обновляю запись, у меня появляется ошибка: "undefined не является функцией" в kendo.js в этой строке:

 model[0].innerInstance().save().then(function (item) {
                                options.success();
                            }).fail(function () {

                                options.error({}, arguments);

                            });

потому что функция сохранения не имеет функции сбоя. Где моя ошибка?

0 ответов

Другие вопросы по тегам