2

私は翡翠テンプレートで角度を使用しており、テンプレートにいくつかのjavascriptがあります:

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

私の角度コントローラーでは、次のようなことを行います。

$scope.name = "Bhoutrous";

スクリプト タグの下にない限り、{{name}} をテンプレートの他の場所に正しく挿入できます。私の場合、角度は「SyntaxError:無効なプロパティ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";

};
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());  

ドット「.」に注意してください。script タグの後に、これによりjadeに js コードを配置できます

于 2014-09-10T23:29:43.333 に答える
0

Angular は DOM 要素で補間を行います。スクリプト タグやその他のランダムな文字列の内容は補間されません。$interpolateAngular アプリケーションのライフサイクル外で、サービスを含む Angular サービスにアクセスできます。昨日、似たような質問に答えました。しかし、その回答のように、これは Angular でアプリケーションを作成するための良い方法ではないことをお勧めします。

于 2013-02-11T04:24:58.837 に答える