我有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>
答案 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
指令上的控制器来初始化作用域上的值。