Node.js Angular.js可以在脚本标记的Jade模板中进行插值吗?

Node.js Angular.js可以在脚本标记的Jade模板中进行插值吗?,node.js,express,angularjs,pug,Node.js,Express,Angularjs,Pug,我正在使用angular和jade模板,模板中有一些javascript: script(type='text/javascript') console.log('{{name}}'); 在我的角度控制器中,我执行如下操作: $scope.name = "Bhoutrous"; 我可以让{{name}}在模板中的任何其他地方正确插入,只要它不在脚本标记下。对我来说,angular抛出了一个“SyntaxError:invalid property id”错误。我想知道这是一个玉的问题

我正在使用angular和jade模板,模板中有一些javascript:

script(type='text/javascript')
    console.log('{{name}}');
在我的角度控制器中,我执行如下操作:

$scope.name = "Bhoutrous";
我可以让{{name}}在模板中的任何其他地方正确插入,只要它不在脚本标记下。对我来说,angular抛出了一个“SyntaxError:invalid property id”错误。我想知道这是一个玉的问题,还是有工作要做。我需要在页面加载时将'name'变量的内容传递给js函数

更新

我知道它可以与常规模板一起使用。下面的例子:

有没有人有使用jade做类似事情的经验

HTML:


角度在DOM元素中进行插值。脚本标记和其他随机字符串的内容不会被插值。您可以访问Angular应用程序生命周期之外的Angular服务,包括
$interpolate
服务。但是,就像在那个答案中一样,我认为这并不是用Angular编写应用程序的好方法。

一种适用于我在jade

div(ng-controller="UserCtrl",anotherAttr="yourValue")
    p#dataBind {{data}}
    div#dat
    script.
       function doit(text){
          $("#dat").html(text)
       }      
       doit($("#dataBind").text());  

注意脚本标记后的点“.”,这允许将js代码放入jade

嗯,字符串被插入到脚本标记中。但是,我通过向$scope:$scope.myfunction=function(){//所需变量是从$routeParams获得的,请使用它。}在模板中,我像这样调用了函数{{myfunction()},它工作得非常好。这被认为是一个好方法吗?如果不是,最好的方法是什么?我不需要双向数据绑定,只需要将一个参数传递给一个函数,该函数在页面加载时被调用。另外,在另一个问题的示例中,js驻留在哪个文件/位置?从这个问题来看,我并不确定您要实现什么。如果您想在首次加载某个对象时在控制器的作用域上运行函数,我可能会使用
ngInit
指令:在另一个问题中,JavaScript可以位于页面加载的任何文件中。我们使用Hogan.js和Angle模板已经有近一年的时间了(主要是因为SEO相关的原因)。如果有我们想要传递给Angular的服务器端模板变量,我们通常在ng init中完成(如上所述)。这不是一个完美的解决方案(例如,它适用于字符串,但会使对象变得复杂),但它确实有效。对于那些说“使用服务器端模板不是一种有棱角的方式”的人来说。搜索引擎优化显然从来没有关系到你。在机器人开始运行javascript之前,你会被某种黑客所困扰,对我们来说,这似乎是最简单的黑客行为。你有没有看过输出的HTML,看看AngularJS实际呈现和使用了什么?
var app=angular.module('myApp', []);

function UserCtrl($scope) {
        $scope.data = "Green Applese";

};
div(ng-controller="UserCtrl",anotherAttr="yourValue")
    p#dataBind {{data}}
    div#dat
    script.
       function doit(text){
          $("#dat").html(text)
       }      
       doit($("#dataBind").text());