我正在使用带有jade模板的角度,我在模板中有一些javascript:
script(type='text/javascript')
console.log('{{name}}');
在我的角度控制器中,我执行以下操作:
$scope.name = "Bhoutrous";
我可以让{{name}}在模板中的任何其他位置正确插值,只要它不在脚本标记下即可。对我来说,angular会抛出“SyntaxError:invalid property id”错误。我想知道这是玉问题还是有解决方法。我需要在页面加载时将'name'变量的内容传递给js函数。
更新
我知道它可以使用常规模板。以下示例的小提琴:http://jsfiddle.net/atentaten/mnscA/
有没有人有过使用玉石做这样的事情的经验?
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";
};
答案 0 :(得分:0)
Angular在DOM元素中进行插值。不插入脚本标记和其他随机字符串的内容。您可以在Angular应用程序生命周期之外访问Angular服务,包括$interpolate
服务; I answered a question much like this yesterday。但是,就像那个答案一样,我认为这不是用Angular编写应用程序的好方法。
答案 1 :(得分:0)
适用于 jade
的表格div(ng-controller="UserCtrl",anotherAttr="yourValue")
p#dataBind {{data}}
div#dat
script.
function doit(text){
$("#dat").html(text)
}
doit($("#dataBind").text());
注意点&#34;。&#34;在脚本标记之后,这允许将js代码放在 jade
中