0

書き込み時に気づいた

collection1.add(model1); - > UIがうまく変更されました。ただし、私が行うとき
collection1.add(model1, {merge: true});
App.div1.currentView.collection.modelsは、(コンソールで)変更されたモデルを示しますが、UIは変更されません。

私は何故手がかりがありませんか?

(注1:私はバックボーンとMarionette.jsを使用しています)
(注2:アプリケーションがグローバルマリオネットのオブジェクトであり、DIV1は、HTMLでマリオネットの領域である)バックボーン - マージ:true - UIを変更しないオプション

+0

どのイベントがレンダリングされますか? "追加"? 'collection1'は空であるか、' model1'はすでにありますか? –

+0

はい、 'add'イベントでのレンダリングです。 'collection1'は空ではなく、' model1'を含む多くのモデルがあります。私が望むのは、 'merge:true'を使うと、' model1'はUIの新しい値で更新されるべきです! – vjjj

答えて

0

これはcollection1.add(model1, {merge: true})で働いていたものです。

1

イベントaddは新しい要素が追加されている場合にのみトリガされますコレクション。 merge=false(デフォルトの動作)の場合、新しい要素(おそらく)が追加されます(同じ属性の2つのコレクションがあり、cididが異なる場合)。 merge=trueで古い要素が更新され、イベントupdateがトリガーされます。

addイベントは、新しい要素が追加される場合にのみトリガされます。

update要素が追加、変更、または削除されると、イベントがトリガーされます。

解決方法:領域をupdateにレンダリングしてください。

modelEvents: { 
    "change": "render" 
} 

// "update": "render" did not work 

model1を担当していましたMarionette.ItemViewに追加^^ -

関連する問題