【发布时间】:2012-10-30 23:34:39
【问题描述】:
我正在使用 Angular 制作游戏。每个玩家对象都有一个x 和一个y 属性。每当玩家移动时,我想启动一个计时器,该计时器在精灵表中的几个背景位置循环。
我想我会用一个指令来做到这一点。问题是指令通常只允许你设置一个表达式来观察:
// "test" directive
module.directive("test", function() {
return function(scope, element, attrs) {
scope.$watch(attrs.test, function(value) {
// do something when it changes
})
}
})
// my template
<div test="name"/>
这种方法的好处是test 指令不必假定作用域具有任何特定属性。当你使用指令时,你告诉它使用什么。
问题是,在我的情况下,如果 x 或 y 发生变化,我需要开始一些事情。我该怎么做?
<div test="player.x, player.y"/>
<div test="player.x" test-two="player.y"/>
有没有你能想到的最好的方法?基本上,如果几个属性中的任何一个发生变化,我想制定一个在计时器上执行某些操作的指令。
【问题讨论】:
-
请注意,我确实知道您可以将函数传递给 scope.$watch,并返回一些自定义的内容,但这个问题更多的是关于我如何告诉指令在绑定它时在函数中做什么.
标签: javascript html angularjs