Node.js 当通过NodeJS服务器提供服务时,不会更新html模板变量
这是一个有点具体的问题,但我有点不知道答案 首先,一点背景。我一直在尝试学习angular,我想开始使用Node作为后端。我目前有一个可以在本地运行的教程应用程序,它只返回硬编码到主控制器中的数据 当我将文件移动到我的NodeJS服务器时,它停止了工作。以下是有效的方法:Node.js 当通过NodeJS服务器提供服务时,不会更新html模板变量,node.js,angularjs,handlebars.js,Node.js,Angularjs,Handlebars.js,这是一个有点具体的问题,但我有点不知道答案 首先,一点背景。我一直在尝试学习angular,我想开始使用Node作为后端。我目前有一个可以在本地运行的教程应用程序,它只返回硬编码到主控制器中的数据 当我将文件移动到我的NodeJS服务器时,它停止了工作。以下是有效的方法: 文件加载正确-没有控制台错误,我可以查看源文件中的每个文件(index.html、app.js、maincontroller.js) 范围存在,变量已定义。我在mainController.js文件中放了一个console.
- 文件加载正确-没有控制台错误,我可以查看源文件中的每个文件(index.html、app.js、maincontroller.js)
- 范围存在,变量已定义。我在mainController.js文件中放了一个console.log($scope),可以看到所有正确定义的变量
- 非角度javascript工作-我可以在主控制器外部/内部放置警报,并且它们都正常工作(而且,console.log显然也可以工作)
<!DOCTYPE html>
<head>
<title>Learning AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script src="js/app.js"></script>
<script src="js/maincontroller.js"></script>
</head>
<body>
<div id="content" ng-app="MyTutorialApp" ng-controller="MainController">
{{understand}}
</div>
</body>
maincontroller.js
app.controller("MainController", function($scope){
$scope.understand = "I now understand how the scope works!";
});
server.js(云9上的节点服务器)
当我阅读时,一切都变得清晰了
"Handlebars.js is an extension to the Mustache templating language"
这是因为hbs使用{{}}作为分隔符和角度,所以html中的{{understand}永远不会变成角度,因为它首先被hbs解析和替换。如果你想将hbs与angular一起使用,你需要在你的应用程序配置中使用angulars$interpolateProvider更改你的分隔符,比如
$interpolateProvider.startSymbol('{/{');
$interpolateProvider.endSymbol('}/}');
你可以使用
\{{understand}}
,因为这将抵消你的hbs,并将你的角度放在首位。这很有效!我确实试着查看是否可以更改车把上的分隔符,但没有这样的运气。非常感谢。我在这一点上肯定被难住了。不久前,当我尝试将它用于django时,我也遇到了同样的情况;)我不敢相信这个问题没有得到更多的选票。
"Handlebars.js is an extension to the Mustache templating language"
$interpolateProvider.startSymbol('{/{');
$interpolateProvider.endSymbol('}/}');