部分应用AngularJS指令

时间:2013-03-21 17:28:10

标签: angularjs

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

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

这可能吗?

由于

1 个答案:

答案 0 :(得分:0)

使用隔离范围时,您可以手动将一些变量代理到范围中:$scope.current.device = $rootScope.current.device; 从那里开始,您可以使用上述方法将device模型放在$rootScope上,并设置方法和字段,例如调用Modernizr等的“hasTouch”。

是的,这是可能的。