Javascript ng点击与角度观察

Javascript ng点击与角度观察,javascript,angularjs,Javascript,Angularjs,我有一个指令,它加载一个JSON文件,然后使用该数据创建一个HTML5画布图形(即JSON数据包含文本、颜色、位置等内容)。我还有许多输入字段(文本、滑块等),允许用户操作图形。我看到我可以$watch每个元素,或者使用ng单击并调用一个函数——有推荐的方法吗 一些可能相关的注释: 表单元素和画布都是同一个指令模板的一部分 表单元素会在更改后做出反应,因此没有提交按钮 每个表单元素值都会被检查,可能会被转换,然后修改json字符串。然后我调用一个刷新函数,它用新数据重新加载画布 我也有可能以

我有一个指令,它加载一个JSON文件,然后使用该数据创建一个HTML5画布图形(即JSON数据包含文本、颜色、位置等内容)。我还有许多输入字段(文本、滑块等),允许用户操作图形。我看到我可以$watch每个元素,或者使用ng单击并调用一个函数——有推荐的方法吗

一些可能相关的注释:

  • 表单元素和画布都是同一个指令模板的一部分
  • 表单元素会在更改后做出反应,因此没有提交按钮
  • 每个表单元素值都会被检查,可能会被转换,然后修改json字符串。然后我调用一个刷新函数,它用新数据重新加载画布

我也有可能以错误的方式处理此问题…

因此,据我所知,用户对某些元素(在指令中)有一些操作,每次触发这些事件时,您都必须执行一些操作

$watch的目的是在每次特定变量的值发生变化时“监视”或执行某些操作<代码>$scope.$watch('watchedVariable',onWatchedVariableChangedFn)其中onWatchedVariableChangedFn是一个函数。仅当值实际更改时才会触发此操作,而不管是什么原因导致更改

另一方面,您可以将事件处理程序连接到标记属性,如
ng click='onClickFn()'
。这些将从UI元素上的操作触发。[另请注意,ng click仅适用于可单击的元素。您似乎有多个元素(文本、滑块等)。]

您可能需要了解到底是什么原因导致这些值发生更改/导致您重新绘制画布,然后决定要走哪条路

编辑:您可能需要考虑的第三个备选方案是触发事件($EIMIT/$广播),并在适用的情况下处理($ on)这些事件。