ここに私のAngular $ scope.variableがあります。
$scope.users = {
id : '',
fullName : '',
email : '',
profile_picture_url : ''
}
$scope.comments = {
commentId : '',
created_by_current_user : '',
created_by_admin : '',
user_has_upvote : '',
creator : '',
fullName : '',
content : '',
created : '',
modified : '',
upvote_count : '',
profile_picture_url : '',
pings : '',
parent : '',
uniqueId : '',
postId : ''
}
ただ、HTTPサービスからオブジェクトの配列を取得し、角度変数として格納しています。ここに私の角度コントローラーがあります
$scope.getByPost = function(postId) {
console.log('getpost')
$scope.user = $cookieStore.get('currentApp');
console.log($scope.user.uniqueId);
$scope.getUsers();
appService.getUserByPost($scope.user.uniqueId, postId)
.then(function(data) {
console.log("Comments" + data)
$scope.comments = data;
});
};
$scope.getUsers = function() {
console.log('getpost')
appService.fetchAllUsers().then(function(data) {
console.log("Users" + data)
$scope.users = data;
}, function(error) {
console.log('Error ' + error)
})
};
これらの変数をDOM操作用の別の通常のJavaScriptファイルに渡す必要があります。私はこれを好きでした。
var dom_el = document.querySelector('[ng-controller="appController"]');
var ng_el = angular.element(dom_el);
var ng_el_scope = ng_el.scope();
var commentsArray = ng_el_scope.comments;
var usersArray = ng_el_scope.users;
動作しません。これを解決するように教えてください。以下のような$ rootscopeに完全にあなたの現在のコントローラで
で
呼び出し、この関数以下のようにJavaScript関数を宣言しますあなたはそれを照会します。あなたのケースでは、それはないと思われる – ABOS
角度では、あなたはアプリケーション全体で変数を共有したい場合は、角のサービスや工場でそれを維持し、必要に応じてそれを使用するより良い – CrazyMac
スタックでこのソリューションを試してみましたhttp: //stackoverflow.com/questions/17960622/pass-angular-scope-variable-to-javascript/#answer-17963609 – k185