0

新しいBackboneJSプロジェクトを開始し、簡単なコードを実装しました。 正しい機能が呼び出されていないと思いますが、エラーは表示されず、予想通りconsole.logコールも表示されません。バックボーンがロードされていないコレクション

import _ from 'underscore'; 
import {Events} from 'backbone'; 
import Observables from './Models/Observables'; 
import ObservablesView from './Views/ObservablesView'; 

(function() { 
    let setGlobals = function() { 
     window.App = {}; 
     App.events = _.clone(Events); 
    }; 

    let init = function() { 
     setGlobals(); 

     // Get the collection from localStorage. 
     let observables = new Observables(); 
     new ObservablesView({el: "#observables", collection: observables}); 

     Backbone.history.start({pushState: true}); 
    }; 

    window.addEventListener('load', init); 
})(); 

これは私のルータです:

import {Backbone} from 'backbone'; 
import {Router} from 'backbone'; 

const FedRouter = Router.extend({ 
    routes: { 
     '': 'index' 
    }, 

    index: function() { 
     App.events.trigger('observables'); 
    } 
}); 
export default FedRouter; 

は、これが私の見解です:

import {View} from 'backbone'; 
import FedRouter from "../FedRouter"; 

/** 
* ObservablesView is the list of items we want to keep track of. 
*/ 
const ObservablesView = View.extend({ 
    router: null, 

    /** 
    * Init a new view object. 
    * @constructor 
    */ 
    initialize: function() { 
     this.router = new FedRouter(); 
     App.events.on('observables', this.loadObservables, this); 
    }, 

    loadObservables: function() { 
     console.log("loadObservables"); 
     this.collection.fetch({ 
      success: (collection) => console.log(collection), 
      error: (collection, response) => console.log(response) 
     }); 
    } 

}); 

export default ObservablesView; 

マイコレクション:

import {Backbone} from 'backbone'; 
import {Collection} from 'backbone'; 
import Observable from './Observable'; 
import Store from 'backbone.localstorage'; 

const Observables = Collection.extend({ 
    model: Observable, 
    localStorage: new Store('fed-observables') 
}); 

export default Observables; 

そして最後に、私のモデル:

import {Model} from 'backbone'; 

const Observable = Model.extend({ 
}); 
export default Observable; 

したがって、「loadObservables」というメッセージが記録されていないことがあります。私は何を正しく設定していないのですか?

+0

この文は正常に実行されていますか? window.addEventListener( 'load'、init); ロード・イベント・バインディングに問題があります。 また、jQueryを使用している場合は、document.readyで同じことを実行してみてください。 単なる考えです。 – Nitesh

+0

コンソールにフィルタが適用されていて、通常のログが表示されないことがあります。問題を示す[mcve]を作成できますか? –

答えて

1

あなたのルーティングが間違っている、他のすべては大丈夫です、ここではこれが原因JSFiddle上の特定のURL構造に私がしなければならなかった唯一の変更、ある作業JSFiddle

Backbone.history.start({pushState: true, root: "_display/"}); 

です。コードをデバッグしてこのstart関数に入ることをお勧めします。loadUrl関数で評価されるフラグメントを見ることができます。

関連する問題