ng-repeat PHP变量

时间:2014-03-11 16:10:06

标签: javascript php json angularjs

我有ng-repeat和ng-init的问题。当我在我的代码(project.content)中询问它们时,它不会向我显示内容或ID。但它也没有显示文本本身。所以某些地方出了问题。请注意,我使用其他open和close标签作为默认值。

当我收到此控制台错误时,Angular会在浏览器中看到与代码不同的内容:

  

http://errors.angularjs.org/1.2.12/ $解析/ ueoe?P0 =突出%20%3D%20%7B

<table ng-init="projects = {" id":"1","content":"testtesttest"}="" "="">

我怎样才能让它发挥作用?

HTML code:

<div ng-app="overviewApp">
    <table  ng-init="projects = <?=json_encode($projects)?> ">
        <tr ng-repeat="project in projects">
            <td>[{[project.content]}]</td>
        </tr>
    </table>
</div>

在浏览器源代码中看起来像这样:

    <!-- BEGIN PAGE CONTENT-->
    <div class="row">
        <div class="col-md-12">
            <div class="content-section">
                <div ng-app="overviewApp">
<table  ng-init="projects = {"id":1,"content":"TestTestTest"} ">
    <tr ng-repeat="project in projects">
        <td>[{[project.content]}]</td>
    </tr>
</table>
</div>

1 个答案:

答案 0 :(得分:1)

它无法解析它,因为它在双引号内看到双引号。尝试使用单引号。

<table  ng-init='projects = <?=json_encode($projects)?> '>

此外,您必须确保projects采用数组格式,如下所示:

ng-init='projects = [{"id":1,"content":"TestTestTest"}]'

最后,由于您使用的是自定义插值提供程序{[{}]},因此您必须在配置中定义:

app.config(['$interpolateProvider', function ($interpolateProvider) {
    $interpolateProvider.startSymbol('[{[');
    $interpolateProvider.endSymbol(']}]');
}]);

看到它正常工作:DEMO

或者,我建议不要使用插值标记,而是建议使用ng-bind指令:

<td><span ng-bind="project.content"></span></td> 

查看DEMO

注意:AngularJS documentation建议使用ng-init指令上的控制器来初始化作用域上的值。