Angularjs 如何改变ng模式的目标

Angularjs 如何改变ng模式的目标,angularjs,Angularjs,鉴于: 我可以重新编译元素,然后它工作: angular.element('input').attr('ng-model', 'prop2'); 但我可以从巴塔朗的性能标签上看出,这会泄露手表 正确的方法是什么?使用中间值来存储这两个值 angular.element('input').attr('ng-model', 'prop2'); $compile(angular.element('input'))($scope); 与其在DOM中更改模型,为什么不在作为模型的$scope变量上引用

鉴于:

我可以重新编译元素,然后它工作:

angular.element('input').attr('ng-model', 'prop2');
但我可以从巴塔朗的性能标签上看出,这会泄露手表


正确的方法是什么?

使用中间值来存储这两个值

angular.element('input').attr('ng-model', 'prop2');
$compile(angular.element('input'))($scope);

与其在DOM中更改模型,为什么不在作为模型的$scope变量上引用另一个对象呢<代码>$scope.prop1=MyThermodeObject我做不到。而不是
prop1
prop2
,想想
employee.firstName
employee.lastName
我需要更改
ng model
绑定到的内容。而不是绑定到
employee.firstName
绑定到另一个对象,例如
employee.activeEditField
,然后您可以交换要包含的范围中所述字段的值firstName或lastName(根据需要)。为什么要避免这样做?如果我这样做,我将不得不
$watch
动态编辑字段
和当前绑定的属性(
firstName
)在它们更改时同步它们的值。我宁愿避免那样。谢谢你的回答,但这正是我想要避免的。
angular.element('input').attr('ng-model', 'prop2');
$compile(angular.element('input'))($scope);
<input ng-model="prop">

$scope.prop = prop1
$scope.prop = prop2