我是AngularJS的新手,我正试图围绕某个概念。我已经想出如何成功执行单向数据绑定,但仍然无法想到与复杂对象执行双向绑定的最佳方法。
HTML
<input type="text" placeholder="Project Lead" ng-model="currentproject.projectLeader.name" />
JS
$scope.ViewProject = function (project) {
$http.get('api/projects/' + project.id)
.success(function (data) {
$scope.currentproject = data;
})
.error(function (error) {
$scope.status = 'Unable to load selected project data: ' + error.message;
});
};
为了简化操作,projectLeader
有projectLeader.id
和projectLeader.name
。
我正在尝试将完整的projectLeader
对象绑定到input
字段,但我希望input
的值仅显示项目name
。这有意义吗?当字段发生变化时,我将如何检索新的projectLeader
?是否最好在该字段上执行ng-change
调用另一个请求到服务器的请求,并输入名称以检索该人的id
?然后修改范围?
答案 0 :(得分:2)
不要将整个对象绑定到输入字段。仅将名称绑定到输入文本。不要使用ng-change,每次sompone更改输入字段时都会触发ng-change,因此每当用户按下键时,ng-change将触发保存数据的方法。而是按一个按钮提交,或者你可以在输入时按下。我会试着为你竖起一个小提琴。