2014-03-28 198 views
-3

我有两个指令,使用相同的功能,这取决于操纵视图和数据。扩展指令范围AngularJS

scope.hide() 
scope.show() 
... 

目前我正在撰写一项服务,但服务主要是针对数据。

有什么建议吗?什么是最好的解决方案呢?

+1

什么究竟是问题吗?最佳解决方案是什么? –

+0

@DavinTryon我的猜测是,问题是如何避免代码重复,我相信这可以通过使用共享控制器来解决。 –

+0

@WalterBrand很难知道答案是:使用'ng-show'来代替或不使用。 –

回答

-1

我会推荐使用控制器来做到这一点。

编辑: 假设你想避免在这两个指令代码重复,并且不希望使用的范围中的服务(它不属于)

EDIT2:

var app = angular.module('app', []); 

app.controller('MyCtrl', function($scope) { 
    $scope.show = function(){}; 
    $scope.hide = function(){}; 
}); 

app.directive('directive2', function() { 
    return { 
    controller: 'MyCtrl' 
    link: function(scope, el, attr) { 
     ... 
    } 
    } 
}) 

app.directive('directive1', function() { 
    return { 
    controller: 'MyCtrl' 
    link: function(scope, el, attr) { 
     ... 
    } 
    } 
}) 
+0

你是指两个指令的控制器? – puppeteer701

+0

我假设你不想在两个目录中重复相同的代码。是的,我的意思是两个指令的一个控制器。 –

+0

嗯,从来没有。将尝试 – puppeteer701