Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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
Javascript 角度滤波器不';不打印空白_Javascript_Angularjs_Angular Filters - Fatal编程技术网

Javascript 角度滤波器不';不打印空白

Javascript 角度滤波器不';不打印空白,javascript,angularjs,angular-filters,Javascript,Angularjs,Angular Filters,当我有这么简单的角度过滤器代码时: {{ 'result: ' + array | printArray }} 带过滤器: app.filter('printArray', [ function() { return function(array) { if (!angular.isArray(array)) { return array; } var result = ''; if (array.length &

当我有这么简单的角度过滤器代码时:

{{ 'result: ' + array | printArray }}
带过滤器:

app.filter('printArray', [
  function() {
    return function(array) {
      if (!angular.isArray(array)) {
        return array;
      }

      var result = '';

      if (array.length > 0) {
        result = array[0];

        for (var i = 1; i < array.length; i++) {
          result += ', ' + array[i];
        }
      }
      return result;
    };
  }
]);
我想这可以通过以下明显的代码来解决:

{{ 'result: ' }}{{ array | printArray }}
但我想知道为什么Angular的工作方式很奇怪

Plunker:

在这个例子中,我使用了函数,
并将字符串移动到大括号外:

result: {{ array | printArray }}

在本例中,我使用了函数,
并将字符串移动到大括号外:

result: {{ array | printArray }}
结帐


{{'结果:'+(数组|打印数组)}
结帐


{{'结果:'+(数组|打印数组)}

我怀疑在表达式被传递到
printArray
过滤器之前,
'result:'+array
正在执行,并且正在触发
!角度.isArray(数组)
过滤器中的路径。然后您看到的是Angular呈现的
array.toString()
的默认Javascript实现。因为“result”+数组不是数组,而是字符串。执行
console.log(数组类型)
在过滤器中,您会发现结果是
string
而不是
object
。操作顺序。。。而且解决方案比预期的简单得多,也更自然。我怀疑在表达式传递到
printArray
过滤器并触发
之前,
'result:“+array
正在执行!角度.isArray(数组)
过滤器中的路径。然后您看到的是Angular呈现的
array.toString()
的默认Javascript实现。因为“result”+数组不是数组,而是字符串。执行
console.log(数组类型)
在过滤器中,您会发现结果是
string
而不是
object
。操作顺序。。。而且这个解决方案比预期的要简单得多,也更自然。我知道它一定有简单的解决方案:)我知道它一定有简单的解决方案:)谢谢。我很想把它放在一个花括号里,但这也是一个很好的解决方案。谢谢。我很想把它放在一个大括号里,但这也是一个很好的解决方案。
  <body ng-controller="MainCtrl">
  {{ 'result: ' + ( array | printArray ) }}

  </body>