如何将$ scope.someStuff响应值转换为变量?

时间:2017-12-16 07:14:46

标签: javascript html arrays angularjs json

这是我的角度控制器:

angular
    .module('hameedApp', [])
    .controller('hameedController', function($scope, $http) {

        $http({
            method: 'GET',
            url: 'json.php'
        }).then(function(response) {
            $scope.contacts = response.data;

        }).catch(function(response) {
            console.log('error');
        })
    });

这是我的body标签的html:

<table class="table">
    <tr>
        <th>Name</th>
        <th>Phone No</th>
        <th>Email</th>
    </tr>
    <tr ng-repeat="contact in contacts">
        <td>{{contact.name}}</td>
        <td>{{contact.gsm}}</td>
        <td>{{contact.email}}</td>
    </tr>
</table>

<script>
    var test = {{contacts}}
    console.log(test);
</script>

我想在一个名为“test”的变量中获得{{contacts}}个完整数组json数据。

有可能吗?

1 个答案:

答案 0 :(得分:1)

Angular概念就是您放在non-angular中的任何内容都无法在window代码中直接访问。您可以做的是,您可以使用angular .module('hameedApp', []) .controller('hameedController', function($scope, $http) { $http({ method: 'GET', url: 'json.php' }).then(function(response) { $scope.contacts = response.data; window.contacts = response.data; }).catch(function(response) { console.log('error'); }) }); 对象将其分配给任何全局变量,如下所示。

contacts

现在,您可以在angular以及non-angular代码的任何位置访问contacts

<强>被修改

如果您想在non-angular代码中获取callback,则必须使用non-angular机制告知您的<head>代码有关更新的值。见下文

在你method中,在window中添加一个新的<head> <script> .... .... window.updateContacts = function(contacts) { console.log(contacts); } .... .... </script> </head>

callback

现在,您可以使用angular代码中的angular .module('hameedApp', []) .controller('hameedController', function($scope, $http) { $http({ method: 'GET', url: 'json.php' }).then(function(response) { $scope.contacts = response.data; window.updateContacts(response.data); }).catch(function(response) { console.log('error'); }) }); ,如下所示

cd D:\Android\sdk\tools\bin
avdmanager.bat list target