Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中回显时,Javascript函数中的新行不起作用_Javascript_Php_Newline - Fatal编程技术网

在PHP中回显时,Javascript函数中的新行不起作用

在PHP中回显时,Javascript函数中的新行不起作用,javascript,php,newline,Javascript,Php,Newline,下面的代码使用Javascript和PHP,但当它运行时,我希望每个echo都位于单独的行上。我尝试过使用\n和以及其他方法,但它们都不会对文本产生任何影响。有人能帮我吗 函数MyCtrl($scope){ $scope.environment\u服务\u包= [ {name:'obj1',info:{text:'',show:true}, {name:'obj2',info:{text:'obj2的一些额外信息',show:false}, ]; } ... {{x.name} {{x.in

下面的代码使用Javascript和PHP,但当它运行时,我希望每个echo都位于单独的行上。我尝试过使用\n和
以及其他方法,但它们都不会对文本产生任何影响。有人能帮我吗

函数MyCtrl($scope){
$scope.environment\u服务\u包=
[
{name:'obj1',info:{text:'',show:true},
{name:'obj2',info:{text:'obj2的一些额外信息',show:false},
];
}

...
{{x.name}
{{x.info.text}

ng绑定不解释html实体,因此您必须以如下方式表示回音:

function MyCtrl($scope) {
  $scope.environment_service_packages = 
    [
      {name: 'obj1', info: {text:['<?php echo "hello" ?>','<?php echo  "world"; ?>'], show: true}},
      {name: 'obj2', info: {text: 'some extra info for obj2', show: false}},
    ];
}




<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 }} </td>
      </tr>
      <tr ng-show="x.info.show">
        <td>
          <p ng-repeat="txt in x.info.text">{{ txt }}</p>
        </td>
      </tr>
    </tbody>
  </table>
</body>
函数MyCtrl($scope){
$scope.environment\u服务\u包=
[
{name:'obj1',info:{text:['',],show:true},
{name:'obj2',info:{text:'obj2的一些额外信息',show:false},
];
}
...
{{x.name}

{{txt}

您的第一个
标记未关闭

<tr ng-click="x.info.show = !x.info.show">
    <td> {{ x.name }} </td>
</tr>
<tr ng-show="x.info.show">
   <td>
      <p ng-repeat="txt in x.info.text">{{ txt }}</p>
   </td>
</tr>

{{x.name}

{{txt}


顺便说一句,在Angular代码中回显PHP是一种不好的做法。

ng绑定不解释html实体,因此您必须以如下方式表示回显:

function MyCtrl($scope) {
  $scope.environment_service_packages = 
    [
      {name: 'obj1', info: {text:['<?php echo "hello" ?>','<?php echo  "world"; ?>'], show: true}},
      {name: 'obj2', info: {text: 'some extra info for obj2', show: false}},
    ];
}




<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 }} </td>
      </tr>
      <tr ng-show="x.info.show">
        <td>
          <p ng-repeat="txt in x.info.text">{{ txt }}</p>
        </td>
      </tr>
    </tbody>
  </table>
</body>
函数MyCtrl($scope){
$scope.environment\u服务\u包=
[
{name:'obj1',info:{text:['',],show:true},
{name:'obj2',info:{text:'obj2的一些额外信息',show:false},
];
}
...
{{x.name}

{{txt}

您的第一个
标记未关闭

<tr ng-click="x.info.show = !x.info.show">
    <td> {{ x.name }} </td>
</tr>
<tr ng-show="x.info.show">
   <td>
      <p ng-repeat="txt in x.info.text">{{ txt }}</p>
   </td>
</tr>

{{x.name}

{{txt}


顺便说一句,在Angular代码中回显PHP是不好的做法。

您只需要将表达式放在

<td>
    <pre>{{ x.info.text }}</pre>
</td>
顺便说一句-您可以用
空白:PRE替换
PRE
标记css样式

函数MyCtrl($scope){
$scope.environment\u服务\u包=
[
{name:'obj1',info:{text:'line 1\nline 2',show:true},
{name:'obj2',info:{text:'obj2的一些额外信息',show:false},
];
}

...
{{x.name}
{{x.info.text}

只需将表达式置于

<td>
    <pre>{{ x.info.text }}</pre>
</td>
顺便说一句-您可以用
空白:PRE替换
PRE
标记css样式

函数MyCtrl($scope){
$scope.environment\u服务\u包=
[
{name:'obj1',info:{text:'line 1\nline 2',show:true},
{name:'obj2',info:{text:'obj2的一些额外信息',show:false},
];
}

...
{{x.name}
{{x.info.text}

我无法运行您的代码--代码中充满了未定义的变量。请查看此页-,并给我们一个只包含您希望我们解决的问题的示例。@TopologicalSort好的,我已经更新了问题。您的

在这种情况下应该可以工作。您可以通过在html中手动编写内容来进行小的校对。为什么(效果如何)你说它们不起作用?它们是否呈现为文本?如果是这样,可能是您的框架或引擎将其转义以输出文本表单。还是CSS的东西?很难说没有一个最小的完整的例子。然而,td中的br标记确实产生了一个新行:)试试
顺便说一句-angularjs的整个想法不是将PHP注入客户端………@AlonEitan并不重要。我应该把代码放在哪里?我不能运行你的代码--它充满了未定义的变量。请查看此页-,并给我们一个只包含您希望我们解决的问题的示例。@TopologicalSort好的,我已经更新了问题。您的

在这种情况下应该可以工作。您可以通过在html中手动编写内容来进行小的校对。为什么(效果如何)你说它们不起作用?它们是否呈现为文本?如果是这样,可能是您的框架或引擎将其转义以输出文本表单。还是CSS的东西?很难说没有一个最小的完整的例子。然而,td中的br标记确实产生了一个新行:)试试
顺便说一句-angularjs的整个想法不是将PHP注入客户端………@AlonEitan并不重要。我应该把代码放在哪里?我想浏览器会知道如何处理这个问题,当它到达
用缺少的结束标记包装单元格时,自动关闭标记。那么没有理由表数据单元格内的
不断线。但是

标记在第二个单元格上,它有一个结束标记是的,但是一些高级html代码可能会破坏其余的。我已经在chrome上测试了这个表,
标记确实起作用,即使之前没有关闭。你是对的,但这是我能看到的唯一一件能阻止它工作的事情。原因是
ngBind
(这相当于
{{expression}
)不适用于html实体:ngBind属性告诉Angular将指定html元素的文本内容替换为OP在其控制器中使用PHP的给定表达式的值-这是我以前从未见过的。。。作为一个整体,这是一个非常糟糕的做法。我认为浏览器会知道如何处理这个问题,当它到达
时,自动关闭标记,用缺少的关闭标记将单元格包装起来
那么表内的数据单元格没有理由不断线。但是

标记在sec上