私はバックボーンとJavaScriptを学んでいます。私は1つのエラーで立ち往生しており、このエラーは純粋なjavascriptと関連していて、バックボーンではないかもしれません。バックボーン:キャッチされていないタイプのエラー:..はコンストラクタではありません
バックボーンのチュートリアル(requireJSは使用しません)を行っているうちに、以下のコード行が見つかりました。
var FirstSubViewModel = Backbone.View.extend({
render: function() {
var source = $("#vehicleTemplate").html();
var template = _.template(source);
this.$el.html(template(this.model.toJSON()));
this.$el.attr("data-color", this.model.get("color"));
return this;
},
});
コードreturns this
が明らかです。そして、すべて正常に動作します。
マイビューモデル:エラーで:
define(['backbone'], function(Backbone) {
var FirstSubViewModel = Backbone.View.extend({
template: _.template($('#myChart-template').html()),
render: function() {
$(this.el).html(this.template());
var ctx = $(this.el).find('#lineChart')[0];
return this;
},
initialize: function() {
this.render();
}
});
});
私のコントローラを動作しません:
define(['backbone', 'FirstSubViewModel'], function(Backbone, FirstSubViewModel)
{ var ch = new dashboardModel.chart({});
new FirstSubViewModel({
^^ HERE I GET ERROR
el: '#chartAnchor1',
model: ch
});
});
マイビューモデル:完全に正常に動作し
define(['backbone'], function(Backbone) {
var FirstSubViewModel = Backbone.View.extend({
template: _.template($('#myChart-template').html()),
render: function() {
$(this.el).html(this.template());
var ctx = $(this.el).find('#lineChart')[0];
// return this; Commented Out!**
},
initialize: function() {
this.render();
}
});
return FirstSubViewModel;
});
問題:return FirstSubViewModel
をレンダリング機能で返すのではなく、下部に使用するとすべて正常に機能します。しかし、私はreturn this
をrender function
で試してみたいと思っています。私は最終的にreturn FirstSubViewModel
をしたいとは思わない。使用するときに、レンダリング機能に「これを返す」
エラー:
FirstSubViewModel
は
私は、サンプルコードを変更しました。私は質問を掲示しながらチュートリアルのコードを微調整しました。私は今実際のチュートリアルコードを入れました。混乱のために私の謝罪。あなたが言っているコードは、私が書いた実際のコードです。与えられたコードは単なるスニペットです。私はこれが問題を解決するのに十分だと思っていました。 – Unbreakable
基本的にチュートリアルでは、チュートリアルではレンダリング機能で「これを返す」を使用しています。しかし、コード全体のクラスをコードの最後に戻す必要があります。私はこのことをすべて学んでいるので、ベストプラクティスをしていないかもしれません。問題がなぜ起こっているかを親切に教えてください。 – Unbreakable
私はまた、私のレンダリング機能で "これを返す"を使用したいと思いますが、エラーが発生します。しかし、コードスニペットの最後にクラス全体を返すと、すべて正常に動作します。 – Unbreakable