我在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}}。万分感谢任何能告诉我为什么会这样的人!
答案 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的一部分,而不是动态插入这些值的角度。