AngularJS:存储范围变量的值

时间:2016-05-16 23:56:51

标签: 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"
});

出于某种原因,我想在我的视图中添加一些使用&#34; name&#34;的值的js代码,为此我必须将它存储在一个变量中..但是这并没有。工作

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

但我不知道该怎么做..请帮忙:)。

3 个答案:

答案 0 :(得分:2)

这种方式很长但是有效:

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

答案 1 :(得分:1)

您不能在javascript中使用插值(&#34; {{variable}}&#34;)语法。您是否有理由尝试在脚本标签中而不是在控制器本身中执行逻辑?您的控制器应该是您在逻辑和视图之间的连接,因此您不需要在html中添加任何标记来执行该逻辑。

答案 2 :(得分: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代码