javascript - 为什么我无法访问此 ng-repeat 中的数据?

标签 javascript angularjs

我编写了以下代码来学习 Angular。它使用用户输入的输入对包含对象列表的 json 文件发出 ajax 请求,然后将该列表打印给用户。

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
    <script type="text/javascript">
        angular.module('myApp', [])
        .controller('myController', function($http) {
            var ctlr = this;
            ctlr.param = "";
            ctlr.responses = [];

            this.makeQuery = function() {
                $http.get('http://localhost:8080?p=' + ctlr.param))
                .then(function(data) {
                        ctlr.response = data; // data -> [{key1: value1,...},...]
                });
            };
        });
    </script>

</head>
<body ng-app="myApp">
    <div ng-controller="myController as mc">
        <input type="text" ng-model="mc.param">
        <input type="submit" ng-click="mc.makeQuery()" value="Submit">
        <ul>
            <li ng-repeat="res in responses">
                <span>{{res.key1}}, {{res.key2}}</span>
            </li>
        </ul>
    </div>
</body>
</html>

当我在 Chrome 中运行此代码时,我看到一个空项目符号列表。 Chrome DevTools 显示按预期返回的 json 文件,因此我知道 ctlr.param 有效。但是该列表有空的项目符号点,因此 ng-repeat 无法正常工作。我似乎无法正确访问 cltr.responses 。有谁知道为什么吗?

最佳答案

您的 responses 对象绑定(bind)到 this,而不是绑定(bind)到 $scope,因为您正在使用 controller as 您应该使用 mc.responses 而不是 responses

<li ng-repeat="res in mc.responses">
     <span>{{res.key1}}, {{res.key2}}</span>
</li>

您可以从johnpapa阅读更多内容风格

关于javascript - 为什么我无法访问此 ng-repeat 中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278139/

相关文章:

javascript - React 服务器端渲染在前端重新渲染?

javascript - 使用 orderBy 对 ng-repeat 中的对象数组进行排序

javascript - Div 跟随鼠标并避开浏览器边界

javascript - AngularJS Ui Router 正则表达式匹配 url 中的通配符

javascript - angularjs - ng-view 重新排列 html 元素

javascript - 为什么它们不一样?

javascript - AngularJs Real Time Stock Ticker - 当值(value)改变时,Flash 突出显示绿色或红色

javascript - Angular.js 需要至少一个复选框

javascript - CSS 无法正确加载带有参数的 $stateProvider 状态

javascript - 填充依赖选择值