我有一个加载JSON文件的指令,然后使用该数据创建HTML5画布图(即json数据包含文本,颜色,位置等内容)。我还有许多输入字段(文本,滑块等),允许用户操作绘图。我看到我可以$观察每个元素或使用ng-click并调用函数 - 是否有推荐的方法?
一些可能相关的说明:
我有可能以错误的方式接近这个......
答案 0 :(得分:7)
因此,根据我的理解,用户可以对某些元素(在指令中)执行某些操作,并且每次触发这些事件时都必须执行某些操作。
$ watch的目的是每次特定变量的值发生变化时“观察”/做某事。 $scope.$watch('watchedVariable', onWatchedVariableChangedFn)
其中onWatchedVariableChangedFn是一个函数。只有当值实际发生变化时才会触发此操作,而不管导致更改的原因。
另一方面,您可以将事件处理程序连接到标记属性,例如ng-click='onClickFn()'
。这些会从UI元素上的操作中触发。 [另请注意,ng-click仅适用于可点击元素。您似乎有多个元素(文本,滑块等)。]
您可能必须查看究竟是什么原因导致这些值的更改/导致您重绘画布然后决定您想要的方式。
编辑:你可能想要考虑的第三个替代方案是在适用的情况下触发事件($ emit / $ broadcast)和处理($ on)这些事件。