【问题标题】:angular scope in controllers + directives控制器+指令中的角度范围
【发布时间】:2014-04-14 22:08:35
【问题描述】:

我对 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>

我收到此错误:未捕获的 ReferenceError: doSomething 未定义 - 如何在指令中使用 doSomething 函数?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    这一行:

    doSomething();
    

    应该是

    scope.doSomething();
    

    因为当您在控制器的作用域中定义方法并且该作用域在指令中继承时,您只能通过作为参数传递的scope 访问它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-20
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多