2016-01-26 123 views
-2
angular.module(app_name).directive('name', ['service', function(service) { 
    return { 
    restrict: 'A', 
    scope: { 
     payload: '@trackClicksWithJson' 
    }, 
    link: function(scope, element, attrs) { 
     element.bind('click', function() { 
     //what I had not accounted for in terms of getting service defined here 
     }); 
    } 
    }; 
}]); 

在调试程序方面的想法?服务似乎是在代码的其他方面的功能,已经注意到,它在点击回调注入服务

+0

你能为服务提供一些代码呢?它是在相同的应用程序名称?怎么样一个plunker/jsfiddle来帮助我们帮助你? – SoluableNonagon

+0

服务已成功注入其他代码区域 – Drew

+1

现在正在发生什么情况,使您认为点击事件无法看到该服务? – Rhumborl

回答

0

被未定义试试这个代码我写

它包括控制器,服务和指导。

可以看出U demo in jsfiddle

angular.module('app', []) 
 
    .controller('ctrl', function() { 
 
    
 
    }) 
 
    .service('service', [function() { 
 
    var that = this; 
 
    this.test = function(element) { 
 
     alert("Test Service");  
 
     
 
    }; 
 
    }]) 
 
    .directive('test', ['service', function(service) { 
 
    return { 
 
     restrict: 'A', 
 
     link: function(scope, element, attrs) { 
 
     element.bind('click', function() { 
 
      service.test(); 
 
     }); 
 
     } 
 
    } 
 
    }]);
#test{ 
 
    width:100px; 
 
    height:30px; 
 
    border:1px solid; 
 
    background:white; 
 
    cursor:pointer; 
 
    line-height:30px; 
 
    text-align:center; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<div ng-app="app"> 
 
    <div id="test" test ng-controller="ctrl as vm"> 
 
    Click Me 
 
    </div> 
 
</div>