当我在我的PHP网站上运行此代码时,它可以正常工作,但在文本之后添加\ n时:'作为php创建一个新行,表格中的条目在顶部停止显示的蓝色标题下方。下面是代码的代码片段,但它不运行php,因此它不会显示错误。
function MyCtrl($scope) {
$scope.environment_service_packages =
[
{name: 'obj1', info: {text: '<?php echo "This: \n breaks the code"; ?>', show: true}},
{name: 'obj2', info: {text: 'some extra info for obj2', show: false}},
];
}
&#13;
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app>
<table ng-controller="MyCtrl" class="table table-hover table-striped">
<tr class="info">
<td>...</td>
</tr>
<tbody ng-repeat="x in environment_service_packages">
<tr ng-click="x.info.show = !x.info.show">
<td> {{ x.name }}
</tr>
<tr ng-show="x.info.show">
<td>
{{ x.info.text }}
</td>
</tr>
</tbody>
</table>
</body>
&#13;
答案 0 :(得分:2)
你实际上需要两次逃避换行。 JavaScript的一个转义和php的一个转义
您当前的字符串会生成此php:
<?php echo "This:
breaks the code"; ?>
因为\n
被javascript计算为换行符,这使得php无效。
您应该使用此字符串:
'<?php echo "This: \\n does not break the code"; ?>'
答案 1 :(得分:2)
\ n不会以HTML格式显示。你必须这样编码。
function MyCtrl($scope) {
$scope.environment_service_packages =
[
// <br> will be convert to <br>
{name: 'obj1', info: {text: '<?php echo "This: <br> breaks the code"; ?>', show: true}},
{name: 'obj2', info: {text: 'some extra info for obj2', show: false}},
];
}