我的应用程序有2个指令:
如果用户未经过身份验证,我想从CreateItem调用Signup 但我不知道如何从CreateItem指令方法调用Signup Directive方法。
这是我的代码:
.directive('createitem', function($modal, $http, Global) {
return {
restrict: 'E',
transclude: true,
templateUrl : 'views/item/create.html',
link: function(scope, elem, attrs) {
scope.openCreateItemModal = function() {
// I want to call openSignupModal if user not authenticated (Global.authenticated)
}
}}}
.directive('signup', function($modal, $http) {
return {
restrict: 'A',
transclude: true,
templateUrl : 'views/signup/create.html',
link: function(scope, elem, attrs) {
scope.openSignupModal = function() {
}
}}};
这是我的观点(我想将join指令注入createitem指令)
<createitem join>
最简洁的方法是什么?
感谢。
答案 0 :(得分:2)
创建一个包含两种方法的简单服务工厂,并在应用程序中的任何地方注入工厂
app.factory('MyModals', function() {
return {
openCreateItemModal: function(arg1, arg2) {
},
openSignupModal: function(arg1, arg2) {
}
}
});
.directive('createitem', function($modal, $http, Global, MyModals) {
return {
link: function(scope, elem, attrs) {
if(! scope.isAuthenticated )
MyModals.openCreateItemModal(arg1, arg2);
}
}
}