2016-12-21 2 views
0

Я пытаюсь создать нижний колонтитул, чтобы передать массив объектов кнопок.Как передать обратную связь funtion в 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: '' 
    } 
    ]; 

У меня есть большая часть его работать так, как я хочу, но, имея проблемы с прохождением функции обратного вызова. Я вижу кнопки, но когда я нажимаю, функции обратного вызова не вызываются. Любые идеи о том, как передать функции обратного вызова?

Спасибо и уважением, диджей

ответ

0

Поскольку saveTest не определен в вашем scope, директива не имеет к нему доступ. Так как вы должны определить их объем и использовать их там, или вы можете передать их в качестве директивы атрибуты в своей собственной области:

Первый путь:

$scope.saveTest = function() { 

} 

И тогда вы можете использовать родитель сфера в вашей директиве:

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

к не является определяющей сферой в директиве, вы говорите, я хочу использовать родительский объем здесь.

Второй способ:

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

Теперь, когда мы определили их в директиве мы должны передать их от HTML, как это:

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

Спасибо. У меня он работает для нижнего колонтитула по умолчанию, где мне просто нужна кнопка сохранения и закрытия. Я передаю сохраненные и закрытые обратные вызовы как атрибуты. Другой, который я пытался, - это настроить нижний колонтитул, в котором я могу передать массив объектов кнопок, и каждая кнопка вызывает их соответствующую функцию обратного вызова. –