New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コントローラのライフサイクルについて仕様変更 #324

Closed
fukudayasuo opened this Issue May 16, 2014 · 0 comments

Comments

Projects
None yet
2 participants
@fukudayasuo

コントローラのライフサイクルについて以下のように変更する。
__initは親から順に実行される。
全ての__initが実行された後に、__postInit(新しく作成する)が子供から実行される。
コントローラのルートエレメントは自分の親の__initが終わった後に決定することとし、バインド先のチェックは自分の親の__initが終わったタイミングで行う。

この仕様変更の作業はブランチ"controller-lifecycle"で行う

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014

fukudayasuo
#324 ライフサイクルのイベント実行順を変更。テストケースを記述。
テストケースは、h5.core.controller_lifecycle.jsを作成して、既存のコントローラのテストのファイルと分けて記述しました。
(masterへマージする時に必要ならマージします。)

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014

fukudayasuo
#324 ライフサイクルの実行順をチェックするテストについて、__postInit,postInitPromiseの実行順のチェックを追加
コントローラのバインド先をテスト内で作って消していたものについて、モジュールで作るように修正
ソースコード修正
 コントローラそれぞれでコールバックを実行する関数の動作がおかしかったので修正
 rejectしていくdfdの順序を制御
 リファクタ

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014

fukudayasuo
#324 __metaのテストを追加。
不要なDOM生成及び、不要なDOM削除(QUnitによってテスト毎に削除されるもの)処理を削除。
popupWindow内のコントローラがgetAllControllers
で取得できることを確認するアサートを追加。
iframeを使用するテストで、iframe内のコントローラをdisposeできていなかったのでteardownに処理を追加。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014

fukudayasuo
#324 __metaチェックのタイミングを修正
__metaチェック(__metaの記述構成のチェック)は同期で行い、rootElementの判定については子の__initの前のタイミングで行っています。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014

fukudayasuo
#324 window.openを使用するテストで、window.close()する前にコントローラをdispose()するように変更
(リファクタで、順序が逆になっていたので、修正しました)

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 27, 2014

fukudayasuo
#324 以下、リファクタしました。
isLifecyclePropertyで$.isFunction()による判定を削除
(ここでチェックしていてもライフサイクルイベントに関数以外が指定された場合、not a function呼び出し時にはエラーになるため)

checkXXX -> validateXXX にリネーム

validate関数は一カ所にまとめました

controllerGroupEach, childControllerEachを使用できるところはそれらを使用するように修正

getAncestorControllerPromise,getDescendantControllerPromise,setExecuteListenersFlagで、走査するターゲットが重複することはないので重複チェック処理を削除

useHandlersを参照するのは、bindByBindMap時に参照するように変更。
bindDecendantHandlersはcontrollerGroupEachを使用するように変更

createCallbackForInitで作成するコールバックでvalidateエラーが起きた時にcontroller.dispose()していた箇所を、controller.rootController.dispose()に変更

bindAndTriggerReadyは、triggerReadyに変更し、bindAndTriggerReadyを呼んでいた箇所は、bindByBindMapをcontrollerGroupEachを使って呼ぶのと、triggerReadyを呼ぶように記述しました。
triggerReadyで、postInitPromiseを待つ必要はない(executeLifecycleEventChainで待っているため)ので、whenでの待機処理を削除しました。

initRootAndParentControllerを使っていないので削除

@simdy simdy added this to the v1.1.11 milestone May 28, 2014

@simdy simdy removed the enhancement label May 28, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 29, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 2, 2014

fukudayasuo
#324 preinitPromise→preInitPromiseに変更。
preInitDfd→preInitDfdに変更。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 3, 2014

fukudayasuo
#324
doForEachControllerGroupsについて、isChildFirstの引数を取るのをやめ、深さ優先で処理行う関数doForEachControllerGroupsDepthFirstを作成して別関数にしました。

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 3, 2014

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 3, 2014

@simdy simdy closed this Jun 3, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment