0

フォーム送信後に入力をクリアするときに混乱します。以下のコード。

HTML :

<form novalidate method="POST">
   <input ng-model="person.firstName" type="text" id="firstName" />
<button ng-click="edit(person)" name="saveBtn" >{{text}}</button>

コントローラー:

app.controller('PersonCtrl', function ($scope, $routeParams, personService) {

    $scope.init = function () {
       $scope.person = {};
    };

    $scope.edit = function (person) {
        personService.insertPerson(person.firstName);
        person.firstName = "";
    };

    $scope.init();
});

質問:person.firstName = ""; OR $scope.person.firstName = "";両方 を使用した場合、動作は同じで、入力は正常にクリアされます。scope* について言及していないhtmlの person.firstName についてどのように知っていますか? *。これが有効な質問かどうかはわかりませんが、$scope を使用するよりも HTML バインディング値を操作する必要があるときはいつでも。

4

1 に答える 1

1

It's because $scope.person and person points to the same object in your $scope.edit function ($scope.person === person is true).

于 2013-05-19T16:35:30.157 に答える