我正在尝试创建一个由多个动态创建的md-sidenavs组成的堆栈.我可以将他们的ID推送到堆栈,但是在使用ng-repeat时无法切换它们.
使用:
app.controller('MenuCtrl',['$scope','$mdSidenav',function($scope,$mdSidenav) { var stack = []; $scope.getStack = function() { return stack; } $scope.add = function(id) { stack.push(id); } $scope.toggle = function(id) { $mdSidenav(id).toggle(); } }]);
有:
<md-button ng-click="add('test')" class="menuBtn">Add</md-button> <md-button ng-click="toggle('test')" class="menuBtn">Toggle</md-button> <md-sidenav class="md-sidenav-left md-whiteframe-z2" md-component-id="{{id}}" ng-repeat="id in getStack()"> {{id}} </md-sidenav>
单击“添加”按钮可按预期在doc中生成md-sidenav元素.但是,Toggle按钮除了在控制台中产生“找不到句柄测试的实例”错误之外什么都不做.使用md-component-id =“test”声明静态md-sidenav工作正常.我正在使用AngularJS 1.3.15和Angular Material 0.8.3.
解决方法
从`Sidenav’指令
source,它似乎不接受md-component-id的动态值