2015-03-03 39 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