アクションでモーダルを追加または編集するような変更を加えた後、モデルフックを再度リフレッシュまたはリロードする必要があります。私はこのような話題をたくさん見たことがありますが、私の場合は非難されているか動作していません。奇跡のデータを変更した後にEmberリフレッシュ/リロードモデル
これは「listing.js」と呼ばれる私のcomponent.jsファイルです:
import Component from '@ember/component';
export default Component.extend({
actions: {
togglePower: function(a){
console.log(a);
var data = new Array();
data.push(a);
$.ajax({
cache:false,
type: 'POST',
url: "/api/device",
data: JSON.stringify(data),
contentType: "application/json"
})
this.get('users.single.households.single.rooms.single.devices.single').send('refresh');
}
}
});
ミラージュは、自分のデータを受信し、それに取り組むことが可能です。しかし、今は私のページをリロードして自分の変更を見る必要があります。だから私はリストに最後の行を追加しようとしました.jsは
this.get('users.single.households.single.rooms.single.devices.single').send('refresh');
ですが、これはうまくいきません。コンソールが思い付く:
TypeError: this.get(...) is undefined
これは私のルートです:
model(){
...},
actions: {
refresh: function() {
this.refresh();
}
}
> }
ありがとうございます。これは助けてくれるが完全には働かない。私はthis.get( 'on-refresh')();を入れます。私のajaxのlisting.jsと{{listing-on-refresh =(route-action "refresh")}}は、私のlisting.hbsの上部にあります。私のサイトは極端に遅くなり、ロードできません。しかしこののようなボタンは正常に動作します。トグルパワーアクションの後にこのアクションを呼び出すことはできますか?たぶん私のアヤックスの直後ですか? – panx36
これにより、サイトの速度が遅くなることがあります。ロードに時間がかかる理由を確認してみてください。 また、ajaxの終了後に 'this.get( 'on-refresh')'を呼び出す必要があることを忘れてしまいました。 '$ .ajax()。then(()=> {this.get( 'on-refresh')()})' – dorindo
私はそれをajaxのその部分に移動し、エラーを受け取りました:_this.get(。 ..)は関数ではありません – panx36