2012-06-02 19 views
3

基本上,我訪問的頁面使用RequireJS。我想對這個頁面進行調整,所以我去了一個用戶腳本的路線。在注視客戶端的代碼,我看到有一個定義爲這樣一個模塊:重新定義RequireJS模塊 - 有可能嗎?

define("settings", [], function() { 
    return { 
    SETTINGA: "100", 
    SETTINGB: "200", 
    etc. 
    } 
}) 

我想不必重新定義模塊我自己的項目添加到設置陣列,以及更改某些設置在我的用戶腳本(與更改),然後刪除/讀取它。是否有可能對這個模塊進行調整?


P.S.我正在使用Script Injection技術讓我的用戶腳本與原始頁面中的其他JavaScript進行交互。

而且,在JavaScript控制檯做require("settings")返回一個對象(不是數組),所以我不能做這樣的事情require("settings")[0]require("settings").push(...),不過,我可以做require("settings").SETTINGA訪問設置。所以,我不知道如何添加/重新定義設置,因爲它不是一個數組?

回答

4

使用此:

require('settings').new_property = 'new value'; 
+0

謝謝!在網絡上清除了更復雜的解決方案之後,很高興看到這樣一個簡單的解決方案。我現在正在使用這種方法來對我的組件的內部依賴關係進行測試。 –

2

無法檢索或添加設置的原因「設置陣列」是,你是不是創建一個數組開始。 {foo:bar}對象文字,而不是數組文字([foo,bar])。