2016-03-21 3 views
1

以前は、serverRefresh()メソッドを使用して、エンティティをWAFでリフレッシュする必要がありました。これは、イベント・サーバー側のinitをトリガーします。エンティティをリフレッシュする方法、角度ワーカンダAPI

ここでは、angle-wakandaコネクタでこれを行う方法はありません。

何か不足していますか?

Angular-Wakandaコネクタで保存する前に、新しく作成したエンティティのデータを初期化するにはどうすればよいですか?

答えて

2

(5/11/16から)バージョン1.1.0およびそれ以降のバージョン1.1.0以降で

、あなたは$recompute()メソッドを使用する必要があり、古いものと同じものを行うこと(下記参照) $serverRefresh()方法。

Angular-Wakanda Entity API Referenceに関するドキュメントがあります。アンギュラWakandaの現在バージョン(1.0.4)に

バージョン1.1.0 <

、あなたまだはあなたのエンティティに$serverRefresh()を呼び出していることを行うことができます。

次されない何 $serverRefresh()
var entity = ds.Product.$create(); 
entity.$serverRefresh().$promise.then(function() { 
    //Your entity is updated with calculated attributes filled, and right events executed 
}); 

:新しく作成された属性(まだ保存されていない)で

  • 、それはクライアント側のエンティティを更新し、initその後、clientrefreshイベントのサーバー側をトリガーする
  • すでに保存されたエンティティで
  • 、それはclientrefreshイベントのサーバー側の引き金となるでしょうし、更新し、クライアント側のエンティティ

実際、廃止予定で削除される予定です。しかし、1.1.0のバージョンでは、同じ動作をする別の、よく文書化された、あいまいではないメソッドに置き換えられます。

+0

ありがとうございます。私はそれをテストし、フィードバックを与えます。それはいいです。新しいバージョンのレポは非公開ですか? – Ganbin

+0

@ガンビンはい、今はプライベートです。すぐに公開されます。 – Blackus

0

エンティティで$fetch()メソッドを使用する必要があります。フェッチしてすべての属性を更新し、変更を適用して$ save()を呼び出します。

も参照してください:$ serverRefresh(これから angular-wakanda doc

+0

$ fetchメソッドは、initイベントをトリガーしません。 – Ganbin

+0

initイベントは、新しいエンティティがサーバー上のメモリに作成された直後にトリガされます。 あなたは「lastNameの」属性に初期化イベントを関連付けるために、属性値を初期化する このイベントを使用することができます。 model.Employee.lastName.events.init =関数(イベント){ this.lastName = "「; } $ createを使用して新しいエンティティを作成すると、initイベントがトリガされます。 –

+0

ありがとう私はすべてを知っている。私は角コネクターでこのinitイベントをトリガすることはできません。私はV1が存在する前にWakandaを使用しています(2012)。 Wakandaのワークフローを完全に理解しています。 $ fetchメソッドは、まだ作成されておらずデータベースに格納されている新しいエンティティには適用できません。 – Ganbin

1

)は推奨されない機能であり、間違いなく角度-Wakandaコネクタから次の1.1.0のリリースで削除されます。 エンティティで$ fetch()メソッドを使用すると、再度フェッチしてすべての属性を更新します。次に、変更を適用して$ save()を呼び出します。あなたは、次のように進行することができ、新規作成したエンティティのために 、:

  var newProduct = ds.Product.$create(); 
      newProduct.productName = "myProductName"; 
      newProduct.price = 5.5; 
      newProduct.$save(); 

そして、この$(保存))は(イベントのinitをトリガーします。

+0

$ createメソッドはinitイベントをトリガーしません。 – Ganbin

+0

それは、私はそれをテストしました、本当にあなたはinitイベントを公開していますか?デバッグを実行した場合は、ブレークポイントを追加して、デバッガが実行されているかどうかを確認してください。 –

+0

これは奇妙です。私の側では、$ createメソッドはinitメソッドを起動しません。私はそれを公開しました(たとえ私がイベントサーバ側のスコープを設定する必要がなくても、それは奇妙です)。$ createメソッドはサーバにanycallを実行しません。あなたはエンティティをセーブしていませんか?保存するとinit偶数がトリガーされます。しかし、私の場合は、保存する前にいくつかのファイルを初期化する必要があります。 – Ganbin

関連する問題