呼び出すときにCannot call 'start' of undefined
を取得するbackbone.jsの履歴を開始するときにundefinedの 'start'を呼び出すことはできません。
Backbone.history.start()
いくつかのチェックを実行すると、バックボーンはオブジェクトを返しますが、Backbone.historyは未定義を返します。
これの原因は何ですか?
ありがとう
呼び出すときにCannot call 'start' of undefined
を取得するbackbone.jsの履歴を開始するときにundefinedの 'start'を呼び出すことはできません。
Backbone.history.start()
いくつかのチェックを実行すると、バックボーンはオブジェクトを返しますが、Backbone.historyは未定義を返します。
これの原因は何ですか?
ありがとう
コントローラにはルートがありますか?少なくとも1つのルートが指定されると、バックボーンは履歴を作成します。
の詳細:あなたの代わりにBackbone.history.start
のBackbone.History.start
を書く場合
TypeError: Cannot call method 'start' of undefined**
Hmm, for some reason Backbone.history is undefined, and so there is no start method on it. It turns out that Backbone.js creates an instance of Backbone.History (upper case ‘H’) called Backbone.history (lower case ‘h’) once a controller has been created that has at least one route specified on it. This makes sense, as history management is only required if there are routes to respond to.
http://tinnedfruit.com/2011/04/26/testing-backbone-apps-with-jasmine-sinon-3.html
なエラーメッセージ「..は何の方法 『スタート』を持っていない」ポップアップする(正しいものは小文字h
中でありますhistory
)。
同じエラーが発生しました。
あなたがルータのインスタンスを作成していない場合に、この問題が発生:
var routerInstance = new blogRouter();
私は実際にインスタンス(http://dpaste.com/06NK3KD)を持っていますが、デフォルトの機能への道を見つけることはできません。 – tutuca
(function($) {
var Demo = Backbone.Router.extend({
routes:{
'*actions':'defaultRoute'
},
defaultRoute:function(action){
alert('xss');
}
});
var demo = new Demo;
Backbone.history.start();
//My site http://bbs.w3hacker.com
})(jQuery);
あなたの投稿の品質を向上させるには、このコードがどのように/どのように問題を解決するのかを含めるようにしてください。 –
あなたがCoffeeScriptのを使用していて、お使いのルーターがコンストラクタメソッド、ダブルチェックとCoffeeScriptのクラスのキーワードを使用して定義されている場合コンストラクターの定義でsuperを呼び出すことができます。これにより、Backbone.historyの問題が解決しました。私はこの不必要な余分な方法で、歴史をコメントした機能()、問題を引き起こしている:
class AppRouter extends Backbone.Router
constructor: (options) ->
super(options)
# other initialization code
私は時間のカップルを過ごした後、私は私のルータ「ルート」の方法は、ことに気づき、別の理由で正確に同じ問題に直面しました.start()は期待どおりに動作しました。
ありがとう!あなたは私の一日を救った! –
は、HTMLの頭の中でunderscore.js
前jQuery.js
とbackbone.js
を含めることを確認してください。
jqueryの旧バージョンを使用すると、このエラーが発生する可能性があります。
URLに「#」文字を続けて入力すると、この問題は解決しなくなりました。 – javabrain