2015-09-17 145 views
1

HTML:现在无法访问对象属性angularjs

<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 

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

+1

为什么不使用'ng-options'而不是'ng-repeat'? –

回答

2

使用NG选项有模型所选元素的JSON反对,在使用NG-的情况下,重复,模型以字符串形式绑定到选项值。这是它应该如何:

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

检查this作进一步解释。

+0

真棒:)谢谢 –

+1

你不止欢迎;) –

1

如果您的插座变量是一个字符串,而不是目的,最好的方式转换使用JSON.parse(outlet)