Javascript 为什么输入在角度js中保持值

Javascript 为什么输入在角度js中保持值,javascript,angularjs,Javascript,Angularjs,我正在研究angularjs。我有个奇怪的问题。我有5个输入,我正在使用angularjs更新这些输入。问题是,当我对任何输入进行手动更改时,angularjs并没有更新这些手动更新的输入。我使用以下方法输入 <input type="text" name="name" id="emp.name" value="{{employee.name}}"/> 确保$scope.employee存在,然后才能在输入中使用employee.name作为模型 因此,在链接或控制器功能的某个地方

我正在研究angularjs。我有个奇怪的问题。我有5个输入,我正在使用angularjs更新这些输入。问题是,当我对任何输入进行手动更改时,angularjs并没有更新这些手动更新的输入。我使用以下方法输入

<input type="text" name="name" id="emp.name" value="{{employee.name}}"/>
确保$scope.employee存在,然后才能在输入中使用employee.name作为模型

因此,在链接或控制器功能的某个地方,您应该设置

$scope.employee = { name: 'initialName' } // Or just '' for empty name
然后,还要注意$scope。$apply,只有在代码异步运行或在浏览器的开发人员控制台中运行时,才需要这样做

最后,尽量不要替换整个员工引用,而只使用您的函数清除其名称:

$scope.showDetail = true;
$scope.employee.name = ''; // If $scope.employee doesn't exists here, read my answer again

这里有一个JSFIDLE来查看它的实际操作:

手动更改是什么意思?您不应该手动更改输入,而应该更改employee.name模型,然后根据需要生成摘要。您可以显示控制器吗?您的第一种方法将不起作用,因为您没有指定ng-model。您确实知道inp.value=inp.getAttributevalue对吗?是的,您对document.getElementById'emp.name'。getAttribute'value'显示值为null,document.getElementById'emp.name'。值是我更改的值。您为什么更改输入值而不是更改模型?它也不起作用$scope.showDetail=true$scope.employee.name=;我添加了一个JSFIDLE来说明这一点。我们需要更多关于您的代码的信息,以了解哪里出了问题,因为它应该按照您所看到的那样工作。
$scope.employee = { name: 'initialName' } // Or just '' for empty name
$scope.showDetail = true;
$scope.employee.name = ''; // If $scope.employee doesn't exists here, read my answer again