【问题标题】:How can we get array loop in controller in angularjs我们如何在angularjs的控制器中获取数组循环
【发布时间】:2017-01-18 13:48:03
【问题描述】:

我们如何从数组循环中获取数据,就像在视图中使用 ng-repeat 获取数据一样?

我想要这个:

function test() {
   var data = [];
   for(var i = 0; i < 10; i++) {
     var newtest = {
                    text: 'text',
                    class: 'class_name',
                    user_chat_img: "images/noimage.jpg",
                    time_stamp: 'myJSON2'
                  }
                  // console.log('chat history',myJSON);
     data.push(newtest);
   }

   return data;
}

var $scope.message = test();
console.log('message', $scope.message);

现在我想获取这个数组值,即文本、类等

这给我这样的控制台数据

Array[1]
 0: Object
  class: "class_name"
  text: "text",
  time_stamp: "myJSON2",
  user_chat_img: "images/noimage.jpg"
  __proto__: Objectlength: 1__proto__: Array[0]

如何在我的控制器中获取这些值 我将使用 ng-repeat 在我的视图中获取这些值 喜欢

ng-repeat={x in message}
and then 
x.class

谢谢

【问题讨论】:

  • 我想将这些数组值放在我的控制器中而不是在我的视图中我只想要“我如何在我的控制器中获取这些数组值”

标签: javascript angularjs arrays loops


【解决方案1】:

试试这个。在控制器外部定义您的功能。这将帮助您访问您提到的功能。

ng-repeat="x in message"

我还把你的函数测试作为控制器内的范围函数。

<!DOCTYPE html>
<html ng-app="angularjs-starter">

<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>

<script>
    var app = angular.module('angularjs-starter', []);

    app.controller('MainCtrl', function ($scope) {
        $scope.message = test();
        console.log('message', $scope.message);
    });

    function test() {
        var data = [];
        for (var i = 0; i < 10; i++) {
            var newtest = {
                    text: 'text',
                    class: 'class_name',
                    user_chat_img: "images/noimage.jpg",
                    time_stamp: 'myJSON2'
                }
                // console.log('chat history',myJSON);
            data.push(newtest);
        }
        return data;
    }
</script>
</head>

<body ng-controller="MainCtrl">
<table>
    <tr ng-repeat="x in message">
        <td>{{x.class}}</td>
    </tr>
</table>
</body>

</html>

【讨论】:

  • 这是一个很好的解决方案,这也适用于我的观点,但我想在我的控制器中使用它以在另一个函数中使用它
  • @NazarHussain 我已经更新了代码。在控制器外部定义您的功能。这将帮助您访问您提到的功能。
  • 感谢您的回复,但我想我无法将我的问题传达给您我想使用在控制器中向我发送测试函数的值,然后在该数组中添加更多消息,然后我必须把这个展示给我的意见
  • 您的要求是什么?
  • 在这个数组中我得到消息,然后我向 api 发送一个调用,该函数给出一些旧消息现在我必须在我的视图中显示所有消息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多