Angularjs ng-repeat不打印变量

时间:2015-08-03 01:06:42

标签: angularjs angularjs-ng-repeat

我在localhost:5000上用烧瓶运行它。如果我只是用浏览器打开html文件,它可以工作,但它不适用于烧瓶。 我有一个名为“arr”的数组,其中有4个数字位于我的控制器内。我想打印出每个数字,但ng-repeat不会这样做。真正有趣的关键是ng-repeat将重复等于数组中项目数的次数,这样就可以了,但它无法在ng-repeat =中打印变量{{number}} arr中的数字“。这是我的代码:

<html ng-app='numberApp'>
<head>
  <meta charset="utf-8">
  <title>Cool</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
  <script>
  var numberApp = angular.module('numberApp', []);
  numberApp.controller('numberCtrl', function($scope, $http){
      $scope.arr = [2, 4, 5, 6];
    });
  </script>
</head>
<body ng-controller="numberCtrl">
  <table>
    <tr>
      <th>First</th>
      <th>Second</th>
      <th>Third</th>
    </tr>
    <tr ng-repeat="number in arr">
      <td> {{ 'start' }} </td>
      <td> {{ number }} </td>
      <td> {{ 'end' }} </td>
    </tr>
  </table>
</body>
</html>

这是浏览器中显示的内容:

First   Second  Third
start           end
start           end
start           end
start           end

它不会打印{{number}}。万分感谢任何能告诉我为什么会这样的人!

2 个答案:

答案 0 :(得分:6)

似乎Jinja表达:&#34; {{}}&#34;与角度表达冲突:&#34; {{}}&#34;。试试这个:

<html ng-app='numberApp'>
<head>
  <meta charset="utf-8">
  <title>Cool</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
  <script>
  var numberApp = angular.module('numberApp', []);
// solved conflict with {{}} of jinja, now we use [[]] for angular expressions
numberApp.config(['$interpolateProvider', function ($interpolateProvider) {
    $interpolateProvider.startSymbol('[[');
    $interpolateProvider.endSymbol(']]');
}]);
  numberApp.controller('numberCtrl', function($scope, $http){
      $scope.arr = [2, 4, 5, 6];
    });
  </script>
</head>
<body ng-controller="numberCtrl">
  <table>
    <tr>
      <th>First</th>
      <th>Second</th>
      <th>Third</th>
    </tr>
    <tr ng-repeat="number in arr">
      <td> {{ 'start' }} </td>
      <td> [[ number ]] </td>
      <td> {{ 'end' }} </td>
    </tr>
  </table>
</body>
</html>   

答案 1 :(得分:2)

Jinja最有可能将angular的模板语法解释为自己的模板语法,并且无需替换{{ number }}

我敢打赌,如果你要检查jinja服务的页面源,“开始”和“结束”字符串将是正在提供的HTML的一部分,而不是动态插入这些值的角度。