繁体   English   中英

如何将有角的$ scope变量传递给JavaScript正态变量

[英]How to pass of angular $scope variable to JavaScript normal variable

这是我的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)
                })
            };

现在,我需要将这些变量传递给另一个普通的JavaScript文件以进行DOM操作。 我确实喜欢这个

 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中,如下所示:$ rootscope.users = data; 使用$ rootscope.requiredValue = $ rootscope.users; 在其他角度js页面中。

尝试使用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确定之前正在运行

尝试像这样使用:

声明如下JavaScript函数

window.sample = function(comments)
{
 // do something
}

在成功回调中调用此函数

window.sample(data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM