这是我的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 Operation的另一个普通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;
不工作。请告诉我解决这个问题。
答案 0 :(得分:1)
将当前控制器中的值保存到$ rootscope,如$ rootscope.users = data; 使用$ rootscope.requiredValue = $ rootscope.users;在其他角度js页面。
答案 1 :(得分:0)
尝试使用window.onload
,例如:
window.onload=function(){
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;
}
或者您可以尝试使用setInterval
,因为您的js
代码可能会在angular
完全完成之前运行
答案 2 :(得分:0)
尝试使用这样:
声明JavaScript函数如下
window.sample = function(comments)
{
// do something
}
在成功回调中调用此函数
window.sample(data)