2

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

script(type='text/javascript')
    console.log('{{name}}');

在我的角度控制器中,我执行以下操作:

$scope.name = "Bhoutrous";

只要它不在脚本标签下,我就可以让 {{name}} 正确插入模板中的其他任何位置。对我来说,角度会引发“SyntaxError:无效的属性 id”错误。我想知道这是翡翠问题还是有解决方法。我需要在页面加载时将“name”变量的内容传递给 js 函数。

更新

我知道它可以与常规模板一起使用。下面的例子的小提琴:http: //jsfiddle.net/atetenaten/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";

};
4

2 回答 2

0

一种适合我的玉石形式

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

注意点“。” 在脚本标签之后,这允许将js代码放入jade

于 2014-09-10T23:29:43.333 回答
0

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

于 2013-02-11T04:24:58.837 回答