ng-repeat / ng-bind 不会显示我的数据

ng-repeat / ng-bind wont show my data

本文关键字:显示 我的 数据 ng-bind ng-repeat      更新时间:2023-09-26

我遇到的问题是我的ng-repeat/ng-bind不会显示$scope.articles中的数据。 在控制台中,我得到了我期望的数据。我现在做了一个代码截图,这样更容易发现问题。

var App = angular.module('App', []);
App.controller('WebCtrl', function($scope, $http) {
  $scope.start = [{
    "id": 1,
    "text": "test1"
  }, {
    "id": 2,
    "text": "test2"
  }, {
    "id": 3,
    "text": "test3"
  }, {
    "id": 4,
    "text": "test4"
  }];
  $scope.articles = $scope.start;
  $http.get('/')
    .then(function() {
      $scope.menu = function(id) {
        $scope.articles = $scope.start[id];
        console.log($scope.articles);
      }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!doctype html>
<html ng-app="App">
<head>
  <meta charset="utf-8">
  <title>Todos $http</title>
  <script src="app.js"></script>
</head>
<body ng-controller="WebCtrl">
  <ul>
    <li style="list-style: none">
      <button ng-click="menu(0)">1</button>
      <button ng-click="menu(1)">2</button>
      <button ng-click="menu(2)">3</button>
      <button ng-click="menu(3)">4</button>
    </li>
  </ul>
  <ul>
    <li style="list-style: none" ng-repeat="article in articles">
      {{article.text}}
    </li>
  </ul>
</body>
</html>

您的代码以指向数组的文章对象开头。在菜单中,它被一个对象替换。ng-repeat迭代其键。

我想主要的变化是:

$scope.articles = $scope.start.slice(id, id + 1);

var App = angular.module('App', []);
App.controller('WebCtrl', function($scope, $http) {
  $scope.start = [{
    "id": 1,
    "text": "test1"
  }, {
    "id": 2,
    "text": "test2"
  }, {
    "id": 3,
    "text": "test3"
  }, {
    "id": 4,
    "text": "test4"
  }];
  $scope.articles = $scope.start;
      $scope.menu = function(id) {
        $scope.articles = $scope.start.slice(id, id + 1);
        console.log($scope.articles);
      }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!doctype html>
<html ng-app="App">
<head>
  <meta charset="utf-8">
  <title>Todos $http</title>
  <script src="app.js"></script>
</head>
<body ng-controller="WebCtrl">
  <ul>
    <li style="list-style: none">
      <button ng-click="menu(0)">1</button>
      <button ng-click="menu(1)">2</button>
      <button ng-click="menu(2)">3</button>
      <button ng-click="menu(3)">4</button>
    </li>
  </ul>
  <ul>
    <li style="list-style: none" ng-repeat="article in articles">
      {{article.text}}
    </li>
  </ul>
</body>
</html>