Javascript 如何使用“轨迹依据”选项进行选择以角度保存模型中的选定对象?

Javascript 如何使用“轨迹依据”选项进行选择以角度保存模型中的选定对象?,javascript,angularjs,Javascript,Angularjs,因此,我有一个选择,使用ng选项填充: <select name="userable" class="form-control" ng-options="u.name group by u.type for u in userables track by u.name" ng-model="user.userable" required> 我从API获得的user对象只返回一个带有可使用名称的字符串,因此我添加了track by u.name,告诉Angular在加载后自动

因此,我有一个选择,使用ng选项填充:

<select name="userable" class="form-control"
  ng-options="u.name group by u.type for u in userables track by u.name"
  ng-model="user.userable" required>
我从API获得的
user
对象只返回一个带有可使用名称的字符串,因此我添加了
track by u.name
,告诉Angular在加载后自动为我选择可使用名称。到目前为止,一切顺利

我遇到的问题是一种奇怪的棱角行为。当我手动选择一个选项时,它会将
user.userable
设置为类似
{id:1,name:'userable 1'}
的对象。但是,当新加载页面时,Angular会更新select,但不会更新模型,因此它与我从API获得的字符串相同,
'Userable 1'

有什么办法可以让这一切顺利进行吗?我讨厌写不必要的代码


如果需要,请请求更多信息,我不确定我是否足够清楚。

看起来像ng select的一种奇怪行为,您需要手动告诉
ng options
中选项的值应该是多少:

ng-options="u.name as u.name group by u.type for u in userables"


//另外,我删除了“track by”,因为不建议将其与
一起使用,因为

您对
用户属性的描述是否正确?看起来你错过了一个开头和结尾的花括号。否则,它看起来像是一个创建不好的对象,这可能是一个问题。对不起,它错了。我现在已经更正了。这种行为正是我想要的,但我希望对象转到模型,而不仅仅是字符串。我知道我可以在控制器中搜索正确的用户,但正如我所说,我讨厌编写不必要的代码:(还有,你指出的关于track by和select as一起工作的好消息。我不知道。嗯,看起来我完全错了。这是你想要的吗?不,但你之前提出的方法有效,我只需要在后面按名称找到元素。但问题是,我无法让它在我的环境中工作!我认为这是与智慧有关的事情。)h XHR请求…仍在调试,以查看实际情况。这肯定是XHR请求的一个错误。当首先加载userables列表时,它会按预期工作。如果没有,它不会选择select中的选项。现在怎么办?哈哈哈
ng-options="u.name as u.name group by u.type for u in userables"