2012-06-13 2 views
2

им пытаются использовать прямой магазин в ExtJS
Heres код к моему магазинуЗагрузка данных в модели по ID-ExtJS

Ext.define('IDE.store.Files', { 
    extend: 'Ext.data.Store', 
    proxy: { 
     type: 'direct', 
     api: { 
      create:Files.AddNew, 
      read:Files.GetFile, 
      update:Files.Update, 
      destroy:Files.Delete, 
      //load:Files.GetFile 
     }, 
     paramOrder:'Path' 
    }, 
    model:'IDE.model.File' 
}) 

код для модели

Ext.define('IDE.model.File', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     { name: 'Path', type: 'string' }, 
     { name: 'Name', type: 'string' }, 
     { name: 'Extention', type: 'string' }, 
     { name: 'Content', type: 'string' } 
    ], 
    idProperty:'Path', 
    store:'IDE.store.Files' 
}) 

как вы можете видеть idProperty является Path
следующий номер кода сгенерирована

//this.getStore('IDE.store.Files').load(path, { sucess: function (file) { 
//    console.log(file.get('Content'));   
//   } }); 
this.getStore('IDE.store.Files').load(path); 

здесь им получать path откуда-то и пытается загрузить файл из конкретного пути ошибка

Ext.data.proxy.Direct.doRequest(): No direct function specified for this proxy 

теперь проблема в том, что документация ExtJS не достаточно, и везде я искал я мог видеть только 4 api в api объект proxy. Какие
1.Create
2.Read
3.update
4.destroy

который апи мне не хватает? ИЛИ
, где мне нужно, чтобы дать прямую функцию load()

+0

Какая версия ExtJS именно вы используете? Потому что параметры, которые вы даете load(), кажутся неправильными. Кроме того, можно удалить нагрузку: config из api: - он не поддерживается. – Izhaki

+0

ooops, потому что я что-то пытался .. теперь я отредактировал вопрос, чтобы отразить точную ситуацию –

+0

Какая версия на EXT? 4.0.7? 4,1? – Izhaki

ответ

1

Есть несколько проблем, которые я мог бы выяснить, с моим кодом так просто положить здесь на помощь сообщества.
1. как я был вызов функции нагрузки правильно .. и это только Doest принимает параметр, но весь объект с областью действия и обратного вызова так Mayb, что была ошибка говоря http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store-method-load
2. если я просто удалить api .. и использовать опцию directFn конфигурации, то она, кажется, работает ..

Код:

Ext.define('IDE.store.Files', { 
    extend: 'Ext.data.Store', 
    proxy: { 
     type: 'direct', 
     directFn: Files.GetFile, // <--- new line of code 
     api: { 
      create:Files.AddNew, 
      //read:Files.GetFile, // <--- old line of code 
      update:Files.Update, 
      destroy:Files.Delete 
     }, 
     paramOrder:'Path' 
    }, 
    model:'IDE.model.File' 
}) 
+1

Я добавил код, чтобы следующий читатель мог видеть, как выглядит код. – MacGyver

Смежные вопросы