【问题标题】:Bind AngularJS variables into inline script tag将 AngularJS 变量绑定到内联脚本标签中
【发布时间】:2015-06-30 23:14:52
【问题描述】:

我需要将我范围内的一些项目添加到我需要在我的网站上运行的一些内联脚本中。

根据我在演示中的尝试,看起来不可能在内联脚本标签中使用我范围内的值。实现这一目标的最佳方法是什么?

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js"></script>
<div ng-app="app">
        <div ng-controller="MainCtrl">
        '{{aaa}}'
         <script>console.log('{{aaa}}');</script>
    </div>
</div>
<script>
'use strict';
var app = angular.module('app', []);
app.controller('MainCtrl', ['$scope', function ($scope) {
  $scope.aaa = 'bbb';
}]);
</script>

控制台返回'{{aaa}}'。我希望它返回bbb

【问题讨论】:

  • 如果你运行你的代码 sn-p,你会注意到输出是bbb。检查开发者控制台中的错误。
  • @Sacho 我得到 bbb 一次,但如果你查看脚本标签,这也应该返回 bbb(在 console.log 中),而不是返回 {{aaa}}?
  • Angular 插入 dom 元素的属性或内容 - 而不是 javascript 字符串。如果要插入字符串,请使用$interpolate 服务。

标签: javascript html angularjs data-binding angularjs-scope


【解决方案1】:

    <div id="idd" ng-controller="MainCtrl">
        '{{aaa}}'
        <button ng-click="$log.log(aaa)">log</button>


    </div>
</div>
<script>
    'use strict';
    var app = angular.module('app', []);
    app.controller('MainCtrl', ['$scope','$log', 
        function($scope,  $log) {
            $scope.aaa = 'bbb';
            $scope.$log = $log;
            //console.log($scope.aaa);
            //console.log($scope.$parent);
        }
    ]);
</script>

【讨论】:

猜你喜欢
  • 2014-07-06
  • 2011-03-09
  • 2012-01-12
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 2015-12-22
  • 2015-08-24
  • 1970-01-01
相关资源
最近更新 更多