简而言之:需要一个AngularJS解决方案,其中模型中数据/属性更改的更改事件回调仅适用于某个DOM,而不是控制器的整个范围/模板控制器。
细节:我有一个由控制器控制的模板。可以从该模板中的不同部分编辑模型的属性(有许多属性)。我需要一种智能但简单的方法来了解用户正在修改模型的哪个部分,通常为不同的部分调用不同的方法。
我知道在每个模型属性输入字段中添加ng-change的冗长解决方案,但是通过添加特定部分容器(div)的一些自定义ng-change /指令可以更聪明吗?我尝试在侦听该模型中的更改的部分中添加自定义指令,但是在该部分之外修改模型时也会触发该指令。
以下是代码摘录:
<div class="profile" object-change-listener object="user" callback="didChangeProfile()">
<label>First name:</label>
<input type="text" ng-model="user.firstName">
<br>
<label>Last name:</label>
<input type="text" ng-model="user.lastName">
<br>
</div>
<div class="settings" object-change-listener object="user" callback="didChangeSettings()">
<p><b>Settings</b></p>
<label>Fav Color:</label>
<input type="text" ng-model="user.favColor">
<br>
<label>Fav Number:</label>
<input type="text" ng-model="user.favNumber">
</div>
以下是用于解释场景的代码:http://codepen.io/tusharbhatta/pen/dXBLPG我想要实现的内容,但即使我更改了一个部分,这两个部分的回调函数也会触发。
任何帮助或指针。