无法访问对象属性angularjs

时间:2015-09-17 10:22:04

标签: javascript angularjs

HTML:

  <select ng-model="outlet">
        <option ng-repeat="outlet in outlets" value='{{outlet}}'>
 {{outlet.name}}</option></select>   

现在,在我的控制器中:

console.log(outlet)
console.log(outlet._id)
var selectedoutlet = {"_id":"554c930c79d26026307a5a9d","name":"Model Town","city":"Default"};
console.log(selectedoutlet);
console.log(selectedoutlet._id)

输出:

{"_id":"554c930c79d26026307a5a9d","name":"Model Town","city":"Default"}
 undefined
 {_id: "554c930c79d26026307a5a9d", name: "Model Town", city: "Default"}
 554c930c79d26026307a5a9d

为什么我无法访问outlet对象的属性?我该如何解决这个问题? 我可以看到它是因为我的对象属性是字符串,但我该如何解决这个问题呢?我当然不想循环和匹配字符串。我只需要访问对象属性。

2 个答案:

答案 0 :(得分:2)

使用ng-options将模型作为所选元素的json,如果使用ng-repeat,模型将作为字符串绑定到选项值。这是应该如何:

<select ng-model="outlet" ng-options="outlet.name for outlet in outlets" ng-change="display()">
 </select> 

检查this以获取进一步说明。

答案 1 :(得分:1)

如果您的outlet变量是字符串而不是object,转换为object的最佳方法是使用JSON.parse(outlet)