AngularJS NG Повтор JSON

0

Прошу прощения за этот простой вопрос. Я разбирал другие вопросы и до сих пор не могу заставить его работать.

У меня есть функция, возвращающая некоторые пары ключ/значение

function(data){
    console.log(data.message);
}

Возвращает...

Object {name: "mpierce486", body: "asfsf", time: "1 second ago"}

У меня есть следующее, когда вы не заходите в консоль...

$scope.message = data.message

Наконец, вот разметка. Я использую приложение Laravel, поэтому я избегаю {{с @. Ничего не появляется, и я знаю, что это простая ошибка. Пожалуйста помогите! Благодарю!

<div ng-app="myApp" ng-controller="messageCtrl">
    <div ng-repeat="x in message" class="main-user-post">
      <h1>@{{ x.body }}</h1>
    </div>
  </div>
Теги:

4 ответа

1

ваша переменная сообщения - это объект, а не массив. Таким образом, в вашей итерации x примет значение каждого свойства объекта (тело, имя, время).

Поэтому либо используйте другой подход, либо преобразуйте свое сообщение в массив:

 $scope.message = [data.message];
1

Я не думаю, что вы можете сделать ng-repeat на объекте. Поскольку он уже является объектом, а не массивом, вы можете получить к нему доступ напрямую, без ng-repeat.

<div ng-app="myApp" ng-controller="messageCtrl">
    <div class="main-user-post">
      <h1>@{{ message.body }}</h1>
    </div>
  </div>
  • 0
    Вы можете сделать повторение объекта, используя ng-repeat="(key, val) in object" - но я не думаю, что OP этого хочет.
  • 0
    Я этого не знал, спасибо.
0

Создайте массив объектов, как показано ниже. JSFiddle - https://jsfiddle.net/L7k6g7ua/ для справки wrt AngularJs -

Надеюсь это поможет!

   <body ng-app="SampleApp">
  <div ng-controller="messageCtrl">
    <div ng-repeat="m in message" class="main-user-post">
      <h1>{{m.body}}</h1>
    </div>
  </div>
</body>

    var sampleApp = angular.module("SampleApp", []);
    sampleApp.controller('messageCtrl', function($scope) {
      var myObject = {
        name: "mpierce486",
        body: "asfsf",
        time: "1 second ago"
      };

      var myArray = [];
      myArray.push(myObject);
      $scope.message = myArray;
    });
0

вы можете выполнять итерацию по свойствам объекта с такими угловыми значениями:

<div ng-app="myApp" ng-controller="messageCtrl">
    <div ng-repeat="(key, value) in message" class="main-user-post">
      <h1>@{{value}}</h1>
    </div>
</div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню