javascript - AngularJS - 无法显示来自 JSON 的内容

标签 javascript angularjs json url-routing

我刚开始使用 AngularJS,在使用 {{ expressions }} 从 JSON 中提取数据时遇到了问题,我使用 $http.get 获取了这些数据。 JSON 对象运行良好,因为我能够将其记录到控制台。但是当我尝试在我的 view.html 中显示它时,表达式是空的。也许这只是一些小事,但我想不通。

下面的代码片段

路由片段:

$routeProvider
.when('/contacts/:contactId', {
     controller: 'ContactController',
     templateUrl: 'js/views/contact.html'
})
.otherwise({
     redirectTo: '/'
});

Controller :

app.controller('ContactController', ['$scope', '$routeParams', '$http',
function($scope, $routeParams, $http) {
    $http.get($routeParams.contactId + '.json').success(function(data) {
        $scope.detail = data;
    })
    .error(function(data) {
        return data;
        console.log("Failed to get data")
    });
    $scope.pageClass = 'contact-screen';

}]);

contact.html View 的一部分:

<div class="text-container">
        <h2 class="name"> {{ detail.name }} </h2>
        <h3 class="subtitle"> "{{ detail.subtitle }}" </h3>
</div>

最佳答案

您有一个包含数据对象的数组,而不是您的代码当前指示的单个对象。

只显示当前 View 中的一项:

$scope.detail = data[0];

但由于您可能会有多个 Controller ,所以 Controller 保持不变并使用 ng-repeat 遍历数组

<div class="text-container" ng-repeat="item in detail">
        <h2 class="name"> {{ item.name }} </h2>
        <h3 class="subtitle"> "{{ item.subtitle }}" </h3>
</div>

或者,因为您在 url 中有 :contactId,更改后端以返回单个对象并保持您的代码完全相同

关于javascript - AngularJS - 无法显示来自 JSON 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466364/

相关文章:

javascript - HTML5 使用 insertBefore 进行拖放

javascript - 当响应数据数组为空时,如何在 AngularJS ng Table 插件表中显示 "no data"消息

javascript - 使用 AngularJS 更新 cookie

php - 发布的值没有进入 json highcharts-php 和 mysql 的 where 子句

javascript - 按键过滤JSON

javascript - DIV标签显示: inlineblock;

javascript - 等待添加到 CSS 的图像加载 - JQuery

javascript - 获取与模式匹配的所有 JSON 键

angularjs - Bootstrap 模态验证在关闭时显示

javascript - 我可以在 ui-grid 中使用下拉菜单填充数据库中的数据吗?