假设我想创建'仅限桌面'和'仅限移动'指令,隐藏或显示基于和环境测试的元素。我可以采用十几种方式,但很酷的方法是“部分应用”现有的“ng-show”指令。因此,'仅限桌面'将等同于并实际委托给'ng-show =“env.isDesktop”',但不需要在某些父控制器中进行env测试并将env放在我的范围内。
另一个常见的例子是标签插件。我可以使用tab
和show
jQuery函数编写一个hide
指令来显示和隐藏元素,但这会失去ngShow
指令中已有的许多功能。我不能让我的tab
指令扩展ngShow指令,以便访问所有变量解析,与ngAnimate集成等...
这可能吗?
由于
答案 0 :(得分:0)
使用隔离范围时,您可以手动将一些变量代理到范围中:$scope.current.device = $rootScope.current.device;
从那里开始,您可以使用上述方法将device
模型放在$rootScope
上,并设置方法和字段,例如调用Modernizr等的“hasTouch”。
是的,这是可能的。