2015-03-03 40 views
1

我使用ngInit將變量從PHP傳遞到我的Angular JS控制器。 在某些情況下,通過字符串可能包含編碼'「(雙引號"Angular JS編碼的雙引號不起作用

<div data-ng-controller="UserController" data-ng-init='init({"test":"&quot;My Test Input&quot;"})'> 
</div> 

但是,當發生這種情況我得到的角JS以下錯誤: http://errors.angularjs.org/1.3.13/$parse/syntax?p0=My&p1=is%20unexpected%2C%20expecting%20%5B%7D%5D&p2=16&p3=init(%7B%22test%22%3A%22%22My%20Test%20Input%22%22%7D)&p4=My%20Test%20Input%22%22%7D)

請幫

+0

使用單引號: - init({「test」:'「My Test Input」'}) – squiroid 2015-03-03 11:40:49

回答

0

試試

<div data-ng-controller="UserController" data-ng-init='init({"test":"\"My Test Input\""})'> 
+0

這裏的問題是數據是用戶生成的。我正在使用 'htmlspecialchars(trim($ data),ENT_QUOTES,「UTF-8」);'在PHP中將數據輸入到數據庫,並且正在使用ngInit從PHP加載到Angular JS,如我的問題所示。 – 2015-03-03 11:56:20

0

這是的不當使用,你應該在控制器上運行你的代碼,而不是

From docs:

唯一的適當使用ngInit的是別名ngRepeat的特殊屬性,如下面的演示看到。除了這種情況,您應該使用控制器而不是ngInit來初始化作用域上的值。

+0

我其實是Angular JS的新手。您認爲將數據從PHP傳遞到Angular JS中的控制器的最佳方式是什麼?直到現在我正在使用ngInit。 – 2015-03-03 11:58:04

+0

使用$ http調用後端或最壞情況傳遞給腳本標記中的變量並從控制器訪問該變量 – charlietfl 2015-03-03 12:00:26