requirejs學習之-- 初始化(一)

為了規范在項目中使用的javascript代碼,我們使用了requirejs框架。

初始階段,我們在按鈕的點擊事件中調用創建的模塊,代碼如下:

function button_click() {_this = this;var args = _this["Command_Params"] || (_this.config || {})["Command_Params"];var cmd = _this["Command"];if (cmd) {cmd.onclick?cmd.onclick(args):"";} else {var url = _this["Command_Url"] || (_this.config || {})["Command_Url"];if (!url) return;require([url], function(Class) {var cmd = new Class(_this, args);cmd.onclick(args);_this["Command"] = _this["Command_Singled"] || (_this.config || {})["Command_Singled"] == false ? null : cmd;});}
}

在這里我們在按鈕的屬性中添加了Command_Url來標識模塊地址,監聽了按鈕的點擊事件,在點擊的時候引用按鈕中配置的模塊并執行onclick方法。不得不說這是一種很簡便的使用模塊的方式,但是不是嚴格的AMD模式。

后來在使用的過程中突然想在頁面初始化的時候引用一個模塊,直接使用require方法就出現了問題:

    require(["./plug-in/jtgcmobile/dd/user.js"],function(Class){var user =new Class();user.showSomeThing();user.login();})
require.js:166 Uncaught Error: Mismatched anonymous define() module: function (){return o}

糾結了好長時間,發現這個方法在控制臺可以直接運行,排除模塊定義錯誤、加載代碼錯誤。那就剩下一個問題,requirejs的加載模式問題導致在頁面加載的過程中無法執行require方法。

又去看了一下官方的文檔,文檔上雖然沒有明說不可以這樣使用,但是提供了一個方法在頁面初始化的時候加載模塊。代碼如下:

<script data-main="scripts/main" src="scripts/require.js"></script>

也就是說在加載requirejs的時候就要指定初始加載模塊。

按照這種方式加載后一切正常了。

所以 ?data-main 屬性還是比較重要的。

 

?

轉載于:https://www.cnblogs.com/Leechg/p/5736384.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256673.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256673.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ROS系統中的多個版本Boost問題

1、刪除多余的boost版本&#xff0c;只需要刪除該版本的libboost*庫以及Boost的頭文件&#xff0c;不需要使用sudo apt-get rm --pugre libboost-dev sudo apt-get armove libboost-dev;這種卸載會把很多Boost依賴的庫刪掉&#xff1b;想要單純的只刪除當前版本的Boost庫&#…

iOS的通知

首先,什么是通知呢,通知跟代理的功能是一樣的,都是傳值,調方法,但是我個人覺得通知比代理還是要簡便的,而且功能更強大,如果你代理弄懂了,那么通知也就非常容易理解了,我認為通知比代理書寫更容易,而且功能更強大.代理是一對一傳值,但是通知可以一對多或多對多,好了不多說了給大…

ValueStack基礎:OGNL

ValueStack基礎&#xff1a;OGNL 要了解ValueStack&#xff0c;必須先理解OGNL(Object Graphic Navigatino Language)&#xff01; OGNL是Struts2中使用的一種表達式語言&#xff0c;它可以用于JSP的標簽庫中&#xff0c;以便能夠方便的訪問各種對象的屬性&#xff1b;它用于界…

4.H - 組合

題目連接&#xff1a;http://acm.hust.edu.cn/vjudge/contest/125308#problem/H 題目大意&#xff1a;下面是一個二人小游戲&#xff1a;桌子上有M堆撲克牌&#xff1b;每堆牌的數量分別為Ni(i1…M)&#xff1b;兩人輪流進行&#xff1b;每走一步可以任意選擇一堆并取走其中的任…

結構體指針需要申請指針內存,結構體對象不需要申請對象內存

struct frame_info { char* data;//圖像數據 int bufsize;//圖像大小 }&#xff1b; 1、struct frame_info* finfoDT new struct frame_info; finfoDT->data new 1280*720 2、struct frame_info finfoDT new struct frame_info; finfoDT.data new 1280*720

圖論——連通圖

Tyvj 2059 元芳看電影 描述 神探狄仁杰電影版首映這天&#xff0c;狄仁杰、李元芳和狄如燕去看電影。由于人實在是太多了&#xff0c;入場的隊伍變得十分不整齊&#xff0c;一個人的前面可能會出現并排的好多人。“元芳&#xff0c;這隊伍你怎么看&#xff1f;”“大人&#xf…

linux-ftools查看Linux 的cached里面有哪些內容

最近&#xff0c;公司有幾臺java服務器經常出現can not allocate memory 的情況。導致SSH登錄失敗。 因此&#xff0c;有必要做點什么。 我們可以使用linux-ftools查看Linux 的cached里面有哪些內容&#xff08;工具: https://code.google.com/p/linux-ftools/&#xff09;&…

matlab常用函數——軟件常用函數

一、軟件操作函數 1)命令窗口函數: clc:清空命令窗口,使用向上箭頭翻看命令。 open:打開文件,文本文件(*.doc),可執行文件(*.exe),圖形文件(*.fig),超文本文件(*.html,*.htm),MATLAB數據庫文件(*.mat),simulink模型文件*.mdl),MATLAB p文件(*.p),…

stanford corenlp的TokensRegex

最近做一些音樂類、讀物類的自然語言理解&#xff0c;就調研使用了下Stanford corenlp&#xff0c;記錄下來。 功能 Stanford Corenlp是一套自然語言分析工具集包括&#xff1a; POS(part of speech tagger)-標注詞性NER(named entity recognizer)-實體名識別Parser樹-分析句子…

將Linux系統下交叉編譯的依賴庫推到ARM平臺下無法建立以來關系解決

問題&#xff1a;平常把opencv庫使用源碼交叉編譯好之后&#xff0c;從windows推到飛機里發現&#xff0c;該庫的依賴關系都沒有了&#xff0c;導致程序運行的時候報該庫大小有問題 解決辦法&#xff1a; 1、將linux下的庫推到ARM平臺中的一個文件夾中&#xff0c;然后將ARM平臺…

Java:switch語句例子

1、輸入一個名次&#xff0c;第1&#xff5e;4名&#xff0c;分別稱為冠軍、亞軍、季軍、殿軍&#xff0c;5名及5名以上&#xff0c;稱為其他名次。 import java.util.Scanner; public class switch1 {public static void main(String[] args){Scanner snew Scanner(System.in)…

SQL計算100以內的質數(可以把100換成任意的整數)

declare i int --定義局部變量ideclare j int --定義局部變量jset i1 --給變量i賦值while i<100 --最外層while循環控制計算20以內的質數&#xff0c;每循環一次提供一個數&#xff0c;判斷它是不是質數begin --最外層while循環開始set j1 --給變量j賦…

matlab常用函數——數據類型函數

三、基本數據類型函數 1)數值函數 double:轉換為雙精度浮點數 single:轉換為單精度浮點數 typecast:在不改變數據大小情況下轉換數據類型 Y=typecast(X,type) type可選范圍:uint8、int8、uint16、int16、uint32、int32、uint64、int64、single、double arrayfun:把函數…

Courses hdu 1083(匹配)

http://acm.hdu.edu.cn/showproblem.php?pid1083 題意&#xff1a;一共有N個學生跟P門課程,一個學生可以任意選一門或多門課,問是否達成: 1.每個學生選的都是不同的課(即不能有兩個學生選同一門課) 2.每門課都有一個代表(即P門課都被成功選過) 今天學姐講匹配時講的題目&#…

進程編譯連接動態庫,需要將動態庫改為lib***.so

1、本身該庫可能編譯成npuDetect.so,但是需要改其名字為libnpuDetect.so,CMakelists才能找到該庫 2、進程中連接動態庫&#xff0c;如果該庫還依賴別的動態庫&#xff0c;則需要繼續把其他的庫也要連接進來

Drbd+Pacemaker實現高可用

What is Pacemaker? Pacemaker是一個集群資源管理器。它利用集群基礎構件&#xff08;OpenAIS 、heartbeat或corosync&#xff09;提供的消息和成員管理能力來探測并從節點或資源級別的故障中恢復&#xff0c;以實現群集服務&#xff08;亦稱資源&#xff09;的最大可用性。 前…

matlab常用函數——矩陣函數

五、數組和矩陣函數 1)數組基本函數 display:顯示字符或者數組 isempty :判斷數組是否為空,空返回1,不空返回0 isequal :判斷數組是否相同 (認為NaN不同) isequalwithequalnans:判斷數組是否相同,把NaN看成相同的數 isfinite :判斷數組元素是否為有限數 isfloat…

記錄下面試中的回答的不好的問題

1 伙伴系統在linux中的作用&#xff0c;具體咋回事 2 tcp擁塞控制 滑動窗口 3 linux sed&#xff0c;awk的具體使用 4 ftp哪幾種模式 5 中斷與輪詢 6 C stl的vector是怎么是實現的 7 I/O多路復用是怎么回事&#xff0c;select(),epoll()具體怎么回事。 一個文件中每行一個單詞&…