Angular没有以http请求显示[对象对象]的正确方式显示变量

时间:2014-09-15 22:23:04

标签: angularjs angularjs-scope

我正在使用一些外部api来获取php中的城市名称:

// Get city name
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://------------&fourpp=1106',
    CURLOPT_USERAGENT => 'RingNBring'
));
$resp = curl_exec($curl);
curl_close($curl);
$city = json_decode($resp);
if ($city->status == 'ok') {
  foreach ($city->results[0] as $k=>$v) {
    if ($k == 'city') {
      $data['city'] = $v;
    }
  }
}

我对angular(console.log)中的返回和返回对象的编码看起来像这样

Object {0: "Yes", cart: Array[4], loc: Object, city: "'s-Gravendeel"}
0: "Yes"cart: Array[4]city: "'s-Gravendeel"loc: Object__proto__: Object main.js:106

现在我在范围内设置了这个:$scope.city = data.city;

现在我看起来:

      <input type="text"  class="form-control" placeholder="Woonplaats" name="city" ng-model="checkoutForm.city" value="{{city}}"  required>

但我只在输入字段中看到[object Object]?当我显示$ scope.city

时,console.log显示正确的值

为什么会这样?

1 个答案:

答案 0 :(得分:1)

您不需要设置value - ng-model为您做的事。

另外,不确定您设置checkoutForm的位置 - 正如您当前的ng-model

所示

您已经表明您正在设置$scope.city = data.city - 所以我只能假设您的http请求返回对象data

如果是这种情况,那么设置,例如$scope.myData = data;,然后您的ng-model可以是ng-model="myData.city - 请注意它是点符号; myData是您要分配给的资产. = myData.city

如果这没有帮助,请显示您检索的js并将数据分配到范围属性