角度控制器中的重复数据删除

时间:2015-07-03 20:35:19

标签: angularjs

我有几个控制器有一些重复的代码直接作用于控制器对象(this)。看起来大致如下:

geekApp.controller( 'ReviewsCtrl', 
  [ 'moduleLoader', function ( moduleLoader ) {

    // controller specific code removed, above

    // the stuff below here is essentially duplicated in a few controllers
    that = this;
    this.loader = [];

    this.getModule = function () {
      var loaderPromise = moduleLoader.getModule( this.url, this.params );
      //add loader promise to this so I can pass it to angular-busy in the template
      this.loader = loaderPromise;

      loaderPromise.success( function ( data ) {
        that.data = data;
    } );
  };

  this.getModule();

} ] );

大多数共享代码已移至模块加载器,但仍然存在大量重复。但基本上所有重复的代码都直接修改了控制器,所以除了将this传递给服务之外,我通常的方法是将代码卸载到服务中,但实际上并没有工作,我知道这很糟糕实践。

我可以使用angular.extend来创建一个具有此功能的基本控制器,但我觉得应该有更好的方法。

"角度方式"是什么?对这段代码进行重复数据删除吗?

0 个答案:

没有答案