我正在使用 Angular 和 Jade 模板,并且模板中有一些 JavaScript:
script(type='text/javascript')
console.log('{{name}}');
在我的 Angular Controller 中,我执行如下操作:
$scope.name = "Bhoutrous";
只要 {{name}} 不在脚本标记下,我就可以在模板中的其他任何位置正确插入。对我来说,Angular 会抛出“SyntaxError:无效的属性 id”错误。我想知道这是 Jade 的问题还是有解决方法。我需要在页面加载时将“name”变量的内容传递给 js 函数。
更新
我知道它可以与常规模板一起使用。下面的例子的 fiddle :http://jsfiddle.net/atentaten/mnscA/
有人有使用 Jade 做类似事情的经验吗?
HTML:
<div ng-controller="UserCtrl">
<p>{{data}}</p>
<div id="dat"></div>
<script type="text/javascript">
function doit(text){
var el = document.getElementById("dat");
el.innerHTML = text;
}
doit( '{{data}}' );
</script>
</div>
JS:
var app=angular.module('myApp', []);
function UserCtrl($scope) {
$scope.data = "Green Applese";
};
最佳答案
Angular 在 DOM 元素中进行插值。脚本标签的内容和其他随机字符串不会被插入。您可以在 Angular 应用程序生命周期之外访问 Angular 服务,包括 $interpolate
服务; I answered a question much like this yesterday 。但是,就像在那个答案中一样,我认为这并不是使用 Angular 编写应用程序的好方法。
关于node.js - Angular.js 可以在脚本标签中的 Jade 模板中进行插值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14804206/