控制器+指令中的角度范围
angular scope in controllers + directives
我对angular很陌生,指令和控制器之间的范围有问题。这是我的代码:
控制器:
var myApp = angular.module('myApp', []);
myApp.controller('testCtrl', function ($scope, $http) {
$scope.doSomething = function() {
alert("Testing Scope");
};
});
指令:
myApp.directive('keyEvents', function($document) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$document.on('keypress', function(e) {
switch (e.keyCode) {
case (49):
doSomething();
break
default:
}
});
}
};
});
HTML:
<script src= "js/main.js"></script>
<script src = "js/keyevents.js"></script>
<body ng-app ="myApp">
<div ng-controller="testCtrl">
<div key-events>
</div>
</div>
</body>
我收到以下错误:Uncaught ReferenceError:doSomething未定义-如何在指令中使用doSometh函数?
此行:
doSomething();
应该是
scope.doSomething();
因为当您从控制器在作用域中定义方法,并且此作用域在指令中继承时,您只能通过作为参数传递的scope
来访问它。
相关文章:
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- AngularJS:带有HTML和angular表达式的指令;编译”;具有外部范围的内容
- AngularJS指令范围约束问题重复出现
- 在 Angular 指令中,如何进行回调,其中函数名称位于父范围的变量中
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- AngularJS:从控制器访问特定的指令范围
- AngularJS:从指令设置范围变量
- AngularJS在指令模板中修改范围
- 基于范围数据更改指令模板中的元素
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 日期-时间范围指令字段未显示任何值
- 从父控制器传递工厂数据以隔离范围指令
- 从子元素访问范围指令
- AngularJS在父级和子级范围指令之间共享数据
- 隔离范围指令会导致业力错误
- 范围$指令中的watch't在AJAX请求后被调用
- 如何在AngularJS中对隔离范围指令进行单元测试
- AngularJS隔离范围指令
- 从隔离范围指令中的更改更改控制器变量值
- 美元的范围.指令中的项未定义