0

したがって、私が達成しようとしているのは、ユーザーがアイテム(モデル)を編集/表示したいときに、それらをURLに送信し、新しいModelインスタンスを作成して、関連するビューをロードして渡す前に.fetchを呼び出すことです。それは新しいモデルです。

さまざまな理由から、ユーザーがアイテム(モデル)を編集しているか表示しているかを知る必要があるため、最初の試みは次のとおりです。

app.Models.Quote = Backbone.Model.extend({

    idAttribute: 'Number',

    initialize: function() {
        this.editMode = false;  
    },

    url: function() {
        return app.Settings.apiUrl() + '/quotes/' + this.id;
    }

});

したがって、ビュー/編集ビューのさまざまな場所で、次のことができます。

if(this.model.editMode){ //foo }

ただし、これはまったく機能していないようです。editModeが見つかりません(未定義)。

これを達成するための人々の一般的な解決策/アドバイスは何ですか?

4

2 に答える 2

0

モデルのプロパティとしてeditModeを追加してみてください。これでthis.model.editModeを実行でき、モデル内でeditModeをthis.editModeとして参照できます。

app.Models.Quote = Backbone.Model.extend({

    idAttribute: 'Number',

    editMode: false, // this initializes the value to false   

    initialize: function() {
        //this.editMode = false;  
    },

    url: function() {
        return app.Settings.apiUrl() + '/quotes/' + this.id;
    }

});
于 2013-03-14T11:56:15.207 に答える
0

このプロパティが機能していることは簡単な例です:http://jsfiddle.net/damian0o/u9rrh/

次のようなものを追加して、これがビューインスタンスであることを確認してください

var self = this;

またはundersocoreメソッドを使用する

_.bindAll(this,""); 

ビュー初期化方法で

于 2013-03-14T11:58:09.640 に答える