Skip to content
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
Closed

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

fukudayasuo opened this issue May 16, 2014 · 0 comments
Assignees
Labels
Milestone

Comments

@fukudayasuo
Copy link

@fukudayasuo fukudayasuo commented May 16, 2014

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

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

fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014
テストケースは、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
…ェックを追加

コントローラのバインド先をテスト内で作って消していたものについて、モジュールで作るように修正
ソースコード修正
 コントローラそれぞれでコールバックを実行する関数の動作がおかしかったので修正
 rejectしていくdfdの順序を制御
 リファクタ
fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014
不要なDOM生成及び、不要なDOM削除(QUnitによってテスト毎に削除されるもの)処理を削除。
popupWindow内のコントローラがgetAllControllers
で取得できることを確認するアサートを追加。
iframeを使用するテストで、iframe内のコントローラをdisposeできていなかったのでteardownに処理を追加。
fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue May 21, 2014
__metaチェック(__metaの記述構成のチェック)は同期で行い、rootElementの判定については子の__initの前のタイミングで行っています。
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 27, 2014
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
preInitDfd→preInitDfdに変更。
fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 3, 2014
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
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.