我已经创建了一个指令,当我调用那些指令时,我需要先加载我的JS。反正将Javascript直接注入angularjs的指令吗?
这是代码。
var directive = module.exports = function($ rootScope,$ location,service,user){ 返回{ 限制:' E', link:function(){ $ rootScope。$ on(' $ routeChangeSuccess',function(event,current){ var path = $ location.path(); var pageName = current。$$ route.title?当前。$$ route.title:path; if(!current.redirectTo){ user.then(function(userInfo){ service.method(pageName,{ marketName:userInfo.marketName, accountName:userInfo.name, clientServices:userInfo.isClientServices(), userType:userInfo.type }); }); } }); } }; };
指令。$ inject = [' $ rootScope',' $ location',' service',' user'];
请做好。
答案 0 :(得分:0)
我认为你不能将directive与js代码捆绑在一起(比如web组件),js必须包含在指令之外。但是,您可以使用angularjs依赖注入将包含的角度服务注入到您的指令中:
app.factory('myDependency', function() {
var myDependencyInstance;
return myDependencyInstance;
});
app.directive('directive', ['myDependency', function(myDependency) {
return {
restrict: 'E',
templateUrl: 'my-customer.html'
};
}])
但我猜它不是你想要的。您可以将js捆绑到指令的模板中,但每次添加指令时都会复制js代码,这可能只适用于非角度js代码。