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对象的属性?我该如何解决这个问题? 我可以看到它是因为我的对象属性是字符串,但我该如何解决这个问题呢?我当然不想循环和匹配字符串。我只需要访问对象属性。
答案 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)