【问题标题】:How to get array 0 value如何获取数组 0 的值
【发布时间】:2020-03-20 07:46:12
【问题描述】:

我玩 angularjs 是为了好玩,但遇到了一些问题。 见下图

存储在键 0 中的数据,我未能在数组中获取这些值。

Example $scope.array[0] retuned undefined

【问题讨论】:

  • array 中的数据不可用时,您可能正在访问它。
  • @Rayon 数据来自$timeout(function () { return $scope.array.push($scope.payment_methods); }, 1000);这个有关系吗?
  • 什么是$scope.payment_methods
  • @Nitheesh 这是来自 Ajax 调用的数据,因此我设置 $timeout 等待来自 Ajax 的数据返回
  • @erin 你可以检查发布的答案吗?这就是你要找的。 watch 也适用于 ajax 调用响应。

标签: javascript arrays angularjs


【解决方案1】:
look like 0 is a key inside 'scope' object
here is nothing 'array'
you can access value from object by rule[https://javascript.info/object].

let scope = {
    alpha: "alpha",
    beta: "beta",
    0: ["Payment_Cash", "Payment_Credit Card", "Payment_Online Transfer", "Payment_Cheque"]
}

console.log(scope[0])

【讨论】:

    【解决方案2】:

    尝试使用角度watch函数

    希望这会有所帮助。

    var app = angular.module("myApp", []);
    app.controller("myCtrl", function($scope, $timeout) {
      $scope.array = [];
      $scope.payment_methods = ["one", "two", "three"];
      $timeout(function () {
          $scope.array = ($scope.payment_methods);
          console.log($scope.array[0]);
      }, 1000);
      console.log($scope.array[0]);
      $scope.$watch(function(scope) { 
          return scope.array;
        },function(newval, oldval) {
          console.log('From watch -- ', newval, oldval);
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
    <div ng-app="myApp" ng-controller="myCtrl"></div>

    【讨论】:

    • 请问是否可以控制 $scope.$watch 之外的值?
    • 是的,但是 value of the updated list will not be available there 可以,因为 ajax 调用是异步请求。我也安慰了手表之外的价值,但它的抛出未定义。每次监视变量发生变化时,都会触发监视函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2021-01-10
    相关资源
    最近更新 更多