数据绑定 ng-model 与对象但在字段中显示值

Data-binding ng-model with object but display a value in field

我是 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;
        });
    };

为简化起见,projectLeaderprojectLeader.idprojectLeader.name

我正在尝试将完整的 projectLeader 对象绑定到 input 字段,但我希望 input 的值仅显示项目 name。这有意义吗?当字段更改时,我将如何检索新的 projectLeader?最好在该字段上执行 ng-change 调用另一个请求到服务器并输入名称以检索该人的 id 吗?然后修改作用域?

不要将整个对象绑定到输入字段。仅将名称绑定到输入文本。不要使用 ng-change,每次 sonpone 更改输入字段时都会触发 ng-change,因此只要用户按下某个键,ng-change 就会触发保存数据的方法。而是放置一个按钮来提交,或者您可以在按下回车键时进行。我会尽力为您提供一个fiddle。