AngularJS中无法读取JSON数组

时间:2018-09-17 15:55:56

标签: arrays angularjs

我有ng-repeat来读取数组:

<div layout="row" layout-align="start end">
        <md-input-container flex="20">
            <label>Product Name *</label>
            <md-select required ng-model="review.productName">
                <md-option ng-repeat="pn in productName_array" value="{{pn}}">{{pn}}</md-option>
            </md-select>
        </md-input-container>
    </div>

这是角度代码,

self.productName_array  = ["abe","abe1","abe2","abe3"];

可以读取结果数组。但是,当我将起始代码更改为该角度代码时,无法读取它。

这是控制器:

self.productName_array  = request.getProductName();

这是请求脚本:

obj.getProductName = function (){
    return $http.get(api_base + 'getProductName').then(function (results) { return results.data;});
};

这是API脚本:

private function getProductName(){
    $this->product->findName();
}

这是查询:

public function findName(){
    if($this->get_request_method() != "GET") $this->response('',406);
    $query="SELECT name FROM product p ORDER BY p.id DESC";
    $this->show_response($this->db->get_list_name($query));
}

角度代码的结果如下:

[["Xiaomi Pocophone F1"],["Samsung Galaxy S9+"],["Samsung Galaxy Note9"],["Iphone XR"],["Iphone XS"],["XIAOMI MI A1 RAM 4\/32GB"],["Iphone XS Max"],["VIVO Y71"],["SAMSUNG GALAXY J2 PRIME"],["SAMSUNG GALAXY J7 PRIME"],["HomeIPHONEIPHONE 6S+"],["HONOR 9 LITE"],["EVERCOSS AT7H"],["Blackberry Aurora"]]

2 个答案:

答案 0 :(得分:0)

看看您的动态结果,您的控制器似乎正在分配一个包含数组的数组。要访问值,可以使用

  <md-option ng-repeat="pn in productName_array[0]" value="{{pn}}">{{pn}}</md-option>

答案 1 :(得分:0)

虽然实际上并不需要完成,但是如果您需要将其用作json,请使用:

var newJson = JSON.stringify(ArrayName);