2015-03-03 3 views
1

Я использую ngInit для передачи переменных из PHP в мой Angular JS Controller. В некоторых ситуациях, переданная строка может содержать закодированные «"»(двойные кавычки ")Угловые 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

ответ

0

Попробуйте

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

Проблема в том, что данные генерируются пользователем. Я использую 'htmlspecialchars (обрезка ($ data), ENT_QUOTES,« UTF-8 »);' в PHP для ввода данных в базу данных, и это загружается в Angular JS из PHP с помощью ngInit, как показано в моем вопросе , –

0

Это неправильное использование ng-init, и вы должны запустить свой код в контроллер вместо

From docs:

Единственное правильное использование ngInit для наложения специальных свойств ngRepeat, как показано на рисунке демо. Помимо этого случая, вы должны использовать контроллеры, а не ngInit, чтобы инициализировать значения в области.

+0

Я на самом деле новичок в Angular JS. Как вы думаете, лучший способ передать данные с PHP на контроллер в Angular JS? До сих пор я использовал ngInit. –

+0

Используйте $ http для вызова backend или худшего случая для переменной в теге скрипта и доступа к этой переменной из контроллера – charlietfl