2

シンプルな静的 Web アプリを 1 ページの Backbone アプリに変換することで、Backbone.js を独学しようとしています。私の問題は、私の問題に関する簡単なチュートリアルが見つからないことです。

私は次の機能を持っています:

function convert(ins) {
    var numbers = parseFloat(ins);
    //Test for NAN
    if(isNAN(numbers)){
        $("#output").html("Error");
    }else{
        var conver = (numbers * 12);
        $("#output").html(conver);
    }
}

現在、この関数は、ユーザーがフィールドにデータを入力すると呼び出されます。出力 div を自動的に更新します。たくさんの変換「アプリ」が欲しい。また、ユーザーがページにアクセスしたときに convert 関数を更新する必要があります。各ページのモデルを作成するにはどうすればよいですか? convert 関数で変更したい唯一の行は次のとおりです。

var conver = (numbers * 12);

私は明らかにバックボーンに本当に慣れていません。これは、サイトのコードを作り直す前に解決する必要がある最後の問題です。

助けていただければ幸いです。ありがとう!

4

2 に答える 2

2

あなたが投稿したコードからは、ユーザーの操作に基づいた変換だけが起こっているように見えるので、バッキング モデルのない単純なビューで十分であるように思われます。変換関数が特定のデータ (サーバーから取得した数式など) に依存している場合は、モデルが保証される可能性がありますが、投稿した内容に基づいて、実際には必要ありません。

たとえば、マークアップが次のようなものだったとします

  <div id="divConversionCalc">
    <label for="txtInputNum">Enter inches</label> <input type="number" id="txtInches" />
    <label>Feet</label> <div id="dvOutput"></div>

  </div>

次のように、関数をカプセル化する backbone.js ビューを宣言できます。

    var ConversionView = Backbone.View.extend({
        el: '#divConversionCalc',

        events: {
            "change #txtInches": "convert"
        },

        convert: function (e) {
            var numbers = parseFloat(this.$el.find('#txtInches').val());
            if (isNaN(numbers)) {
                this.$el.find("#dvOutput").html("Error");
            } else {
                var conver = (numbers * 12);
                this.$el.find("#dvOutput").html(conver);
            }

        }

    });

    $(function () {
        new ConversionView();
    });

JSビン

于 2013-02-05T04:11:05.757 に答える
0

コードの残りの部分を見ないと、問題はins文字列であり、Javascript で文字列に数字を掛けることはできないようです。代わりに変更すると、おそらく問題なく使用できますnumbers * 12

于 2013-02-05T03:07:02.067 に答える