1

假设我想创建“仅限桌面”和“仅限移动”指令来隐藏或显示基于环境测试的元素。有十几种方法可以解决,但一个很酷的方法是“部分应用”现有的 'ng-show' 指令。因此,“仅桌面”将等同于“ng-show="env.isDesktop"',但实际上无需在某些父控制器中进行 env 测试并将 env 放在我的范围内。

另一个常见的例子是标签插件。我可以编写一个指令来使用和jQuery 函数tab来显示和隐藏元素,但这会失去指令中已有的很多功能。我不能让我的指令扩展 ngShow 指令,以便访问所有变量解析、与 ngAnimate 集成等...showhidengShowtab

这可能吗?

谢谢

4

1 回答 1

0

使用隔离作用域时,您可以手动将一些变量代理到作用域中:$scope.current.device = $rootScope.current.device; 除此之外,您可以使用上述方法来放置device模型$rootScope并具有方法和字段,例如调用 Modernizr 的“hasTouch”等。

所以是的,这是可能的。

于 2013-04-20T13:02:16.643 回答