1

extjs 6.0.2 アプリの最新の領域で単純なリストの例を作成しているだけです。モデル、ストア、ビューを作成しました。ストアをリスト コンポーネントに割り当てた後、ビューには何も表示されませんが、Sencha ドキュメントの指示に従いました。

モデル => Task.js

Ext.define('NewsApp.model.Task', {
extend: 'Ext.data.Model',
xtype:'Task',

fields: [
    { name: 'label',     type: 'string' },
    { name: 'done',      type: 'boolean', defaultValue:false }
]});

ストア => Tasks.js

Ext.define('NewsApp.store.Tasks', {
extend: 'Ext.data.Store',

requires:[
    'NewsApp.model.Task'
],

alias: 'store.tasks',

model: 'NewsApp.model.Task',

data : [
    {label: 'Make the bed'},
    {label: 'Go to Masjed'},
    {label: 'Take out the trash'},
    {label: 'Take Kids out'},
    {label: 'Go shopping'}
]});

表示 => about.js

Ext.define('NewsApp.view.about.About', {
extend: 'Ext.Panel',

requires: [
    'NewsApp.view.about.AboutController',
    'NewsApp.store.MobileOS',
    'Ext.dataview.List',
    'NewsApp.store.Tasks'
],
xtype: 'About',
controller: 'about',
fullscreen: true,
layout: 'vbox',
items: [
    {
        xtype: 'list',
        itemTpl: '<div class="todo-item">{label}</div>',
        store: 'NewsApp.store.Tasks',
        items: []
    }
]});

実行中にコンソールに警告が表示されることにも気付きました

[警告] 指定されたストアが見つかりません

そして、リスト構成にストア名を正しく書いたと確信しています。

4

3 に答える 3

2

ストア構成を文字列 (クラス名) にすることはできません。作成する必要があります。

// ...
xtype: 'list',
store: Ext.create('NewsApp.store.Tasks'),
// ...
于 2016-08-25T15:49:02.173 に答える
1

あなたが間違っている最初のことは、ストアを呼び出すことNewsApp.store.Tasksです。これは許可されていないため、エラーが発生します。グリッドに格納するには多くの方法があります。私が提案する方法の 1 つは、ID を使用して呼び出すことです。ストアに ID を割り当てます。

Store :

Ext.define('NewsApp.store.Tasks', {
extend: 'Ext.data.Store',

requires:[
   'NewsApp.model.Task'
] ,

alias: 'store.tasks',

model: 'NewsApp.model.Task',
id : 'NewTask',

 data : [
  {label: 'Make the bed'},
  {label: 'Go to Masjed'},
  {label: 'Take out the trash'},
  {label: 'Take Kids out'},
  {label: 'Go shopping'}
  ]});

次に、この ID 読み取りストアをグリッドで使用します。

store : NewTask

このリンクを読んで理解を深めてください。これは、コードを設計する方法とまったく同じように役立ちます。エイリアス

どんな提案でも大歓迎です。

于 2016-08-26T05:26:42.063 に答える
0

ストアはロードされていますか?ビューモデルを使用していますか? その場合、ビューモデルでストアを設定できます。

stores: {
    task: {
        //Store reference
        type: 'tasks',

        //Auto load
        autoLoad: true
    }
}

このアプローチでは、ストアをビューにバインドすることもできます。

bind: {store: 'task'}
于 2017-03-03T08:27:47.693 に答える