我的html中有一个带有指令的按钮。我想将值传递给该指令:
<md-button class="md-icon-button" minimize-popup mdMenu="$mdMenu">
在我的指令中,我有:
return {
scope: {
mdMenu: '='
},
link (scope, element, attrs) {
console.log(scope.mdMenu);
但是日志显示该行未定义。我猜是因为minimize-popup
和mdMenu=$mdMenu
彼此之间没有关系。
答案 0 :(得分:2)
首先,必须将您的参数名称规范化为md-menu
,否则angularjs将其规范化为mdmenu
,这将永远与伪指令定义中的mdMenu
不匹配。
第二,确保在您的范围内定义了$mdMenu
;因为自从进行mdMenu: '='
这样的绑定以来,angularjs会在范围内寻找变量。
下面有一个简单的代码片段,其中带有带有参数的指令,供您用作示例。
angular.module('app', [])
.directive('myDirective', function () {
return {
scope: {
'myParam': '='
},
link(scope, elem, attrs){
console.log(scope.myParam)
}
}
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.0/angular.js"></script>
<div ng-app="app" ng-init="test = 'foo'">
<div my-directive my-param="test"></div>
</div>