这里是我的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;
不工作。请告诉我解决这个问题。
这取决于DOM是否已经创建或不前你查询它。在你的情况下,它似乎不是 – ABOS
在Angular中,如果你想在整个应用程序中共享变量,那么最好将它保存在Angular服务或工厂中,并在需要的地方使用它 – CrazyMac
你试过这个解决方案堆栈http: //stackoverflow.com/questions/17960622/pass-angular-scope-variable-to-javascript/#answer-17963609 – k185