2016-05-16 20 views
1

IはAngularJSで初心者です、私は(チュートリアル)から、次のコードを試みた:AngularJS:可変範囲の値を記憶

マイビュー:

<div ng-app="app"> 
<div ng-controller="exempleCtrl"> 
    HELLO {{name}}! 
</div> 

マイコントローラ:

var app = angular.module("app", []); 

app.controller("exempleCtrl", function($scope) { 
$scope.name = "World" 
}); 

理由のために、私は "名前"の値を使用して私のビューにいくつかのjsコードを追加したい帽子私は変数に格納する必要が..しかし、これは

<script language="JAVASCRIPT"> 
    var name = {{name}}; 
</script> 

動作しませんが、私はそれを行う方法がわからない...助けが

+0

を参照してください。 –

+0

私の見解ではそれが必要です。 – Insaf

+0

あなたはあなたのスクリプトタグにそれがなぜ必要なのか説明できますか? –

答えて

3

このように長いですが、それは動作します:

<script type="text/javascript"> 
    setTimeout(function(){ 
     var name = angular.element(document.querySelector('[ng-controller="exempleCtrl"]')).scope().name; 
     console.log(name) 
    },5000) 
</script> 
+0

"未定義"を返します。 – Insaf

+0

1

あなたは補間を使用することはできません:)してください(」 {{variable}} ")の構文を使用します。コントローラ自体ではなく、スクリプトタグでロジックを実行しようとしている理由はありますか?あなたのコントローラーはロジックとビューの間の接続であるため、そのロジックを実行するためにHTMLにタグを追加する必要はありません。

+0

私は理解していますが、私の場合はそれを行う必要があります。 – Insaf

+0

私はすべての状況が一意なので、前提を素早くしたいとは思わないので、スクリプトタグであなたの視点でそれを行う必要がある理由を少し拡張することができますか?解決策を見つけるのに役立つかもしれません。 – sourdoughdetzel

1

あなたが本当にこれをしたい場合。

<div ng-app="app"> 
    <div id="myCtrl" ng-controller="exempleCtrl"> 
    {{name}} 
    </div> 

    <script> 
    document.addEventListener('DOMContentLoaded', function() { 
     var elem = document.getElementById('myCtrl'); 
     var name = angular.element(elem).scope().name; 
     console.log(name); 
    }); 

    </script> 

はなぜとにかく、あなたのコントローラに入れていない、あなたのスコープでそれを持っているjsfiddleコード