我是新来的角(1周),并想知道如何在一个视图中识别特定的控制器。我有一个包含5个独立秒表的页面,该页面当前不接受按键输入。这些秒表中的每一个都使用完全相同的控制器,但是它们都是自己的,并且非常乐意按照我的意愿单独运行。我希望能够使用击键来激活这些控制器中的一个,例如,如果我击中A,它将模拟按下A秒表上的“lap”按钮。但是由于每个控制器都是相同的名称,我无法确定如何将此按键发送到正确的秒表。我可能会错误地使用Angular,因此任何建议将不胜感激。 TIA。杰里米角 - 识别范围或控制器
0
A
回答
1
正常运行;一个视图不会尝试直接访问控制器。您可以在视图元素与控制器采用NG-控制器标签,联想这样的:
<div ng-controller="myController"></div>
这听起来像你的“秒表”真的是同一组件的五个单独的实例;在这种情况下,我建议你考虑建立一个directive。指令就像组件的Angular版本,可以包含显示代码和JavaScript代码。该指令可以定义一个控制器,当您在页面中使用该指令时,会有五个独立的实例;所以按下圈按钮不应该影响其他人。
0
由于您的键盘输入未链接到聚焦元素,因此您必须绑定到body
keydown keypress
事件。对于这个创建像
app.directive('keyCapture', function() {
return function (scope, element, attrs) {
$('body').bind("keydown", function (event) {
if(event.which === attrs.filter[0]) {
scope.$apply(function(){
scope.callMethod();
});
event.preventDefault();
}
});
};
});
一个指令现在你可以使用这个指令与
<div id='timer' key-capture="" filter="a"></div>
<div id='timer' key-capture="" filter="e"></div>
控制器应该有方法callMethod
此指令将正确调用。
如果你可以使用独立的范围,你可以如使用&
相关问题
- 1. 角控制器作用域范围
- 2. 角度不识别我的控制器
- 3. 角度js不识别控制器
- 4. 角结合指令范围控制器范围
- 5. 角度1 $范围和控制器,当$范围死亡?
- 6. 从角度访问子控制器的控制器范围
- 7. 角度控制器:$范围或VAR为非视图变量
- 8. 如何在角度控制器或范围上使用angular.toJson
- 9. 控制器范围内跨范围
- 10. 角控制范围没有更新
- 11. 角控制范围/变量不出现
- 12. AngularJS控制器在单独的文件中没有识别范围
- 13. 角度指令范围没有反映控制器范围的变化
- 14. 在哪些情况下,角度指令范围等于控制器范围?
- 15. $范围未更新 - 控制器规范
- 16. 与共享控制器的角度指令不共享控制器的$范围
- 17. Angularjs - 薪火$范围控制器
- 18. 控制器和指令控制器的范围有什么区别?
- 19. 控制器和验证器的范围
- 20. 多个控制器的角度共享服务范围
- 21. 差异如何角控制器接受$范围
- 22. 在子控制器模板中访问父范围变量 - 角
- 23. 控制器中的角度ng-click范围调用函数
- 24. 角度范围为所有模块和控制器共享
- 25. 茉莉花控制器测试中的角度范围
- 26. 将角度指令范围传递给指令控制器
- 27. 角度数据传播通过范围树与控制器
- 28. 两个控制器,角度范围内的一个变量
- 29. 角度 - 基本控制器范围中断代码
- 30. 在序列图中表示角度范围和控制器
范围对象的一部分,您可以发布一个的jsfiddle通过这种方法吗?事件将在最近的控制器处触发。如果控制器是孤立的,就像在指令中一样,你必须触发一个发射来通知父控制器。如果控制器是兄弟姐妹,那么你可以广播它使用服务的消息。如果你可以发布一些代码,我可以帮助你更多。 – Pete
我添加了一个缩小的小提琴,仅显示2个秒表。我通常在页面上有5个。我想要做的就是增加按下一个键(A)的能力,这将激活A级的Lap键,B将在B级激活Lap等。这是因为计算机在室外使用,它是一个PITA尝试快速找到鼠标指针。我可能做错了,但这是我的第一个Angular应用程序。小提琴在(http://jsfiddle.net/3Fxhu/) – user3386442