0

バックボーンにモデルとビューを作成しました。「SyntaxError: function statement requires a name - >changeClg: function (height, width) {」という構文エラーが表示されます。

selectTable = Backbone.View.extend({
    render: function() {
        var height= 50;
        var width= 56;
        if (true) {
            changeClg(height,width);
        }
        changeClg: function (height, width) {
            console.log("inside changeClg");
        }
        var selector = this.$el.find("select.clg-selection");
        selector.html("<option></option>");
    }
});

しかし、以下のように異なる構文でビューの外側でそのchangeClg関数を宣言すると機能します

selectTable = Backbone.View.extend({
    render: function() {
        var height= 50;
        var width= 56;
        if (true) {
          changeClg(height,width);
        }
        var selector = this.$el.find("select.clg-selection");
        selector.html("<option></option>");
    }
});
changeClg = function (height, width) {
    console.log("inside changeClg");
    this.$el.find(".clg-dors")[0];
}

実際には、elオブジェクトと他のいくつかのオブジェクトを使用する必要があるため、最初のオプションに移動する必要がありますが、エラーが発生しています。

「changeClg」関数を呼び出すだけですが、構文エラーが発生します。

これら2つの関数宣言の違いは何ですか?

何が問題なのか教えてください。

4

2 に答える 2

1

changeClg: function (height, width)正しい構文ではないと思います。代わりに `var changeClg = function (height, width){...} を使用する必要があります。

あなたが直面している問題は、a: 関数を使用してオブジェクトを作成していないためです。つまり 、正しく、 c = {a: function{...}} ca() を使用できますが a: function{...}、間違っています。代わり var a = function {...}に正しい方法であり、a() を直接使用できます。

于 2013-10-24T13:40:42.717 に答える
0

「this」キーワードを使用してオブジェクトプロパティを呼び出す必要があります。また、以下のようにレンダリングプロパティの後に「changeClg」関数を作成しました

selectTable = Backbone.View.extend({
    render: function() {
    var height= 50;
    var width= 56;
        if (true) {
          this.changeClg(chartHeight);
        }
      var selector = this.$el.find("select.clg-selection");
      selector.html("<option></option>");
    },
    changeClg: function (height, width) {
        console.log("inside changeClg");
    }
});

ありがとう

于 2013-10-23T09:35:30.620 に答える