Open mtakeuchi opened 7 years ago
親コントローラのinitで、initでPromiseを返す子コントローラをmanageChildすると、子コントローラの__initが2回実行されてしまう。
サンプルコード
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Sample</title> <link href="//code.htmlhifive.com/h5.css" rel="stylesheet"> <script src="//code.jquery.com/jquery-2.2.4.min.js"></script> <script src="//code.htmlhifive.com/ejs-h5mod.js"></script> <script src="//code.htmlhifive.com/h5.js"></script> </head> <body> <div id="result"></div> <script> h5.core.controller('body', { __name: 'ParentController', __init: function() { $('#result').append('<div>ParentController __init called.</div>'); var child = h5.core.controller('body', { __name: 'ChildController', __init: function() { $('#result').append('<div>ChildController __init called.</div>'); var df = this.deferred(); setTimeout(function() { df.resolve(); }); return df.promise(); }, __ready: function() { $('#result').append('<div>ChildController __ready called.</div>'); } }); this.manageChild(child); }, __ready: function() { $('#result').append('<div>ParentController __ready called.</div>'); } }); </script> </body> </html>
・実行結果 ParentController init called. ChildController init called. ChildController init called. ChildController ready called. ParentController __ready called.
親コントローラのinitで、initでPromiseを返す子コントローラをmanageChildすると、子コントローラの__initが2回実行されてしまう。
サンプルコード
・実行結果 ParentController init called. ChildController init called. ChildController init called. ChildController ready called. ParentController __ready called.