angularjs许多控制器设计材料

时间:2015-04-15 07:18:22

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-controller

Ng-design-material需要一个控制器来管理ui组件。但我还需要在同一页面上的控制器来管理用户数据和逻辑(例如输入或计时器)。 根据这个Q/A,在同一个元素中不可能有两个控制器。 所以问题是,什么是最好的做法,更好的解决方案来做我想要的?

http://codepen.io/anon/pen/jEgYwd

var app = angular.module('HelloApp', ['ngMaterial']);

app.controller('AppCtrl', ['$scope', '$mdSidenav', function($scope, $mdSidenav){

  $scope.data = "";

  $scope.toggleRight = function() {
     $mdSidenav('right').toggle()
       .then(function(){
         $log.debug("toggle RIGHT is done");
      })}
}]);

在上面的示例中,“数据”应该在其他地方?

1 个答案:

答案 0 :(得分:1)

使用md-button

指令E附加点击事件会更好

<强>指令

app.directive('mdButton', function($log, $mdSidenav){
  return{
    restric: 'E',
    link: function(scope, element, attrs){
      element.on('click', function(){
        $mdSidenav('right').toggle()
         .then(function(){
           $log.debug("toggle RIGHT is done");
           scope.$eval(attrs.action); //you could pass any method which you want to run
        })
      });
    }
  }
});

Working Codepen