1. 程式人生 > >解決requirejs迴圈依賴問題

解決requirejs迴圈依賴問題

一.問題:A依賴B(即A引用B且呼叫B中的方法),B也依賴A,這即為迴圈依賴,那麼,當B呼叫A中的方法時,會發現A為undefined,這就是迴圈依賴導致的問題。
二.解決迴圈依賴的方法:
1.用scope模式傳參方式;
2.用pubsub解耦;
3.用require(“A”)的方式:
3.1.enterlib-controller.js(即為A)中引用了enterlib-view.js(即為B)中的init方法
這裡寫圖片描述
3.2.enterlib-view.js中也想引用enterlib-controller.js中的test方法,這時,若是在enterlib-view.js中用define([“../controller/enterlib-controller”], function(Controller) {
Controller.test();
})
這種寫法,會發現Controller為undefined,這是迴圈引用導致的,解決辦法:
在enterlib-view.js中寫:
這裡寫圖片描述