2016-12-21 6 views
0

ボタンオブジェクトの配列を渡すことができるフッターディレクティブを作成しようとしています。ここコールバック関数をAngular JS dirctiveに渡す方法

は私の配列は、私は私が望むように働いたが、コールバック関数を渡すことで、問題を持つことのほとんどを持っている

$scope.buttons = [ 
    { 
     btnLabel: "Close", 
     btnClass: "btn-p2 pull-left", 
     show: true, 
     disabled: false, 
     callback: function(){console.log('close...');}, 
     role: '' 
    }, 
    { 
     btnLabel: "Save", 
     btnClass: "btn-p1 pull-right", 
     show: true, 
     disabled: true, 
     callback: saveTest, 
     role: '' 
    } 
    ]; 

...です。私はボタンが表示されますが、コールバック関数をクリックすると呼び出されません。どのようにコールバック関数を渡す上の任意のアイデアですか?

おかげに関して、 DJ

答えて

0

saveTestがあなたのscopeで定義されていないので、ディレクティブは、それへのアクセス権を持っていません。だから、どちらかがスコープ上でそれらを定義したに持っており、そこにそれらを使用するか、またはディレクティブは、独自のスコープ内の属性として、あなたはそれらを渡すことができます:

最初の方法

$scope.saveTest = function() { 

} 

そして、あなたが使用することができます

app.directive('someDirective', function() { 
    return { 
    restrict: 'E' 
    templateUrl: "..." 
    } 
}) 

ディレクティブにスコープを定義しないと、ここでは親スコープを使用したいと言います。

第二の方法

<div some-directive save-test="saveTest" close="close"></div> 
+0

ありがとう:今、私たちは、このようにHTMLからそれらを渡す必要がありディレクティブでそれらが定義されていること

app.directive('someDirective', function() { return { restrict: 'EA', scope: { saveTest: '&', close: '&' }, templateUrl: "..." } }) 

。私はそれが保存と閉じるボタンが必要なデフォルトのフッターのために働いている。私は属性としてsaveとcloseのコールバックを渡します。私がしようとしているもう1つは、ボタンオブジェクトの配列を渡すことができ、それぞれのボタンがそれぞれのコールバック関数を呼び出すカスタマイズされたフッターを持つことです。 –

関連する問題