我正在尝试创建一个可以传递按钮对象数组的页脚指令。
这是我的阵列......
$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 :(得分:0)
由于scope
中未定义$scope.saveTest = function () {
}
,因此指令无法访问它。所以要么你必须在范围上定义它们并在那里使用它们,要么你可以在它们自己的范围内将它们作为指令属性传递:
第一种方式:
app.directive('someDirective', function() {
return {
restrict: 'E'
templateUrl: "..."
}
})
然后您可以在指令中使用父作用域:
app.directive('someDirective', function() {
return {
restrict: 'EA',
scope: {
saveTest: '&',
close: '&'
},
templateUrl: "..."
}
})
如果没有在指令中定义范围,那么你就是说我想在这里使用父范围。
第二种方式:
<div some-directive save-test="saveTest" close="close"></div>
现在我们已经在指令中定义了它们,我们必须从html传递它们:
{{1}}