angularjs 设计多个控制器 material

angularjs many controllers ng design material

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

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");
      })}
}]);

在上面的例子中,"data"应该在别的地方?

更好的做法是使用指令 md-buttonE

附加点击事件

指令

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