私のコントローラー:
$scope.totals = totals;
私のテンプレート(htmlインジェクションで期待どおりに機能します):
{{totals}}
ただし、次のように、テンプレート内のスクリプトで変数totals
にアクセスする必要があります。
<script>
var totals = ????;
// do stuff with totals
</script>
$scope.totals
、$totals
、{{totals}}
などを試しましたが、何もしませんでした。私はどんな洞察にも感謝します、ありがとう!
編集:
以下は、私のコントローラーとテンプレートのjsfiddleです。テンプレート内に、$scope.totals
変数を使用するスクリプトを挿入したいと思います。
OP回答:
最終的にディレクティブを使用して、必要な値を見つける必要がありました。使用したい値を設定するコントローラーに、次のようにディレクティブを追加しました。
'use strict';
angular.module('AdminApp')
.controller('AdminEventsCtrl', function ($scope, collection) {
$scope.totals = collection;
}).directive('foo', function(){
return {
restrict: 'A',
link: function(scope, elem, attrs){
//Use scope.totals here
}
}
});
私のテンプレートでは、宣言がありました:
<div foo></div>
これにより、変数の合計で必要なことを行うことができました。
この回答にたどり着く手助けをしてくれた@jvandemoに特に感謝します。
まず、AngularJSの背後にある考え方は、そのような状況を回避することです。
AngularJSに関しては、おそらくアプリケーションを再考し、ディレクティブを使用して、現在スクリプトタグに記述しているコードをカプセル化する方が良いでしょう。
ただし、そうは言っても、次のようなスコープにアクセスする方法があります。
_var $element = $('#elementId');
var scope = angular.element($element).scope();
_
詳細は documentation を参照してください。
しかし、前述のように、ほとんどの場合、これは推奨される方法ではありません。
お役に立てば幸いです。
OPがjsFiddleを投稿した後の更新:
私は http://jsfiddle.net/jvandemo/hYnBa/1/ であなたの便宜のために動作するjsFiddleを作成しました
あなたの例には_ng-controller
_属性を持つ単純なdiv
があるので、次のようにスコープにアクセスできます:
_<script>
$(document).ready(function(){
var $element = $('div[ng-controller="AdminEventsCtrl"]');
var scope = angular.element($element).scope();
console.dir(scope);
});
</script>
_
ここで何が起こるかです:
scope()
メソッドを呼び出すscope.totals
_お役に立てば幸いです。