簡體   English   中英

如何使用$ eval將字符串傳遞給obj-Angular

[英]How to use $eval to pass string to obj - Angular

我有這個字符串:

"var config={general:{instance:'livedemo'}};"    

我想基於該字符串創建一個對象,

事實是,使用普通的JS eval函數,一切正常,但是使用$ eval,我會收到“ ReferenceError:未定義配置”,而angular只允許我在控制器上使用$ eval。

有人知道我該怎么做?

謝謝

Angular的$eval不是用來評估任何javascript表達式,而是用來評估Angular表達式,即通常您在HTML中編寫的內容,例如{{expression}}

現在,這完全取決於要評估的字符串的來源。 如果您完全控制它,可以進行eval 但是,如果不確定它是否安全,則可以嘗試對其進行解析。

如果您在{}中輸入的字符串是正確的JSON,即: {"general": {"instance": "livedemo"}} ,那么您可能會:

var s = "var config={general:{instance:'livedemo'}};"
var m = s.match(/var (.*)=({.*})/);
var varname = m[1];          // "config"
var data = JSON.parse(m[2]); // {general: ...}

這個問題可能有您的答案, Angular.js:$ eval如何工作,為什么與香草eval不同?

$ eval和$ parse不評估JavaScript; 他們評估AngularJS 表達式 鏈接的文檔解釋了表達式和JavaScript之間的區別。

我在鏈接頁面上嘗試了angularjs 1.0.8+的表達式計算器。 它沒有任何例外地工作。 如果要在示波器的關鍵配置(例如scope.config設置一些數據,則可以放棄關鍵字var

"config={general:{instance:'livedemo'}}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM