龙卷风Web服务器与AngularJS运算符expression式不兼容

我在2个不同的服务器上运行代码(从http://plnkr.co/edit/WHcjcEHdny0yhM2Rs95d?p=preview获取) – Tornado和Apache

index.html的:

<!DOCTYPE html> <html ng-app="contestantApp"> <head> <script data-require="angular.js@1.3.0" data-semver="1.3.0" src="//code.angularjs.org/1.3.0/angular.js"></script> <script src="/static/js/script.js"></script> </head> <body > <h1>Contestants</h1> <section ng-controller="ContestantsCtrl as ctrl"> <ul> <li ng-repeat="contestant in ctrl.contestants"> {{contestant.firstName}} {{contestant.lastName}} </li> </ul> <form ng-controller="ContestantEditorCtrl as editorCtrl"> <h2>New Contestant</h2> <fieldset> <label> First name <input ng-model="editorCtrl.contestant.firstName"> </label> <label> Last name <input ng-model="editorCtrl.contestant.lastName"> </label> <button ng-click="editorCtrl.save()">Save</button> </fieldset> </form> </section> </body> </html> 

script.js:

 var app = angular.module('contestantApp', []); app.controller('ContestantsCtrl', function() { this.contestants = [ {firstName: 'Rachel', lastName: 'Washington'}, {firstName: 'Joshua', lastName: 'Foster'}, {firstName: 'Samuel', lastName: 'Walker'}, {firstName: 'Phyllis', lastName: 'Reynolds'} ]; }); app.controller('ContestantEditorCtrl', function($scope) { this.contestant = {}; this.save = function() { $scope.ctrl.contestants.push(this.contestant); this.contestant = {}; }; }); 

1)龙卷风给我那个错误

HTTPServerRequest(protocol ='http',host ='localhost:8888',method ='GET',uri ='/',version ='HTTP / 1.1',remote_ip =':: 1',headers = {'Accept-语言':'en-US,en; q = 0.8,fr; q = 0.6,ru; q = 0.4','Accept-Encoding':'gzip,deflate,sdch','Host':'localhost:8888' ,'Accept':'text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp, / ; q = 0.8','User-Agent':'Mozilla / OS X 10_9_5)AppleWebKit / 537.36(KHTML,如Gecko)Chrome浏览器/ 41.0.2272.104 Safari / 537.36','Connection':'keep-alive','Cookie':'__ngDebug = true','Pragma':'caching“,”caching控制“:”无caching“})

回溯(最近一次通话最后):

文件“/Users/asp/projects/trialsapi/venv/lib/python2.7/site-packages/tornado/web.py”,第1332行,在_execute结果=方法(* self.path_args,** self.path_kwargs)文件“/Users/asp/projects/trialsapi/tornadoapp.py”,第26行,在get self.render(“index.html”)

文件“/Users/asp/projects/trialsapi/venv/lib/python2.7/site-packages/tornado/web.py”,第665行,在render html = self.render_string(template_name,** kwargs)

文件“/Users/asp/projects/trialsapi/venv/lib/python2.7/site-packages/tornado/web.py”,第772行,在render_string中返回t.generate(** namespace)

文件“/Users/asp/projects/trialsapi/venv/lib/python2.7/site-packages/tornado/template.py”,第278行,在生成中返回execute()

文件“_index_html.generated.py”,第5行,在_tt_execute _tt_tmp = contestant.firstName#index.html:14

NameError:未定义全局名称“参赛者”错误:tornado.access:500 GET /(:: 1)3.61ms

2)Apache工作良好,让我看看我想要什么。

我做错了什么? ,看起来像龙卷风不适用于{{}}运算符?

RequestHandler.render用于处理Tornado模板,该模板使用{{ }}进行表达式替换(与Angular相同)。 如果您使用Angular模板,则可以将此HTML作为静态文件提供,而不是通过模板引擎运行,或者用{{! 。 龙卷风将删除感叹号,并留下独自休息处理的角度。

你可以用这样的东西覆盖角{{}}。

 var app = angular.module().config(function ($interpolateProvider) {$interpolateProvider.startSymbol('{[{').endSymbol('}]}');