2015-03-14 1 views
0

Большую часть времени я буду звонить на Фабрику с моего углового контроллера, но я просто оставлю его в функции контроллера, а не в своей собственной функции. Как это, например:Нужно ли мне вводить вызовы Factory внутри функции в моем контроллере?

(function() { 
     'use strict'; 

     angular.module("Dashboard") 
     .controller("DashboardController", DashboardController); 

     DashboardController.$inject = ["Interface"]; 

     function DashboardController (Interface) 
     { 
     var vm = this; 


     /** 
     * Total Open Tickets 
     */ 
     Interface.openTickets().then(function (data) { 
      vm.tickets = objCount(data); 
      }); 
     } 

    })(); 

Я всегда нужно видеть общее количество открытых билетов на мой взгляд, так что я на самом деле не нужно иметь другую функцию для этого. Но будет ли это более эффективным и улучшить читаемость кода, чтобы поместить вызов Interface в другой метод, а затем инициализировать все методы? Как это:

function DashboardController (Interface) 
    { 
     var vm = this; 
     vm.getTickets = getTickets(); 

     /** 
     * Total Open Tickets 
     */ 
     function getTickets() { 
     Interface.openTickets().then(function (data) { 
      vm.tickets = objCount(data); 
      }); 
     } 

    } 

Я думаю, второй пример является экологически чистыми способами сделать это, так что я думаю об обновлении всех моего кода. Я прав, думая об этом?

ответ

2

Лично я считаю, что это самый чистый способ написать его. В основном это касается личных предпочтений. Я бы избегал функции self-invoking, поскольку он забивает вещи, и если вы используете angular.module, вы не вводите никаких глобальных переменных. Я бы избегал скобок C-стиля, поскольку автоматическая инъекция точек с запятой в javascript может испортить это в некоторых случаях. Я не могу вспомнить точный случай, но я знаю, что Крокфорд упоминает об этом в своем «Javascript, хороших частях». Если вы не будете использовать getTickets для чего-либо другого, но для вызова другой функции, я думаю, что это просто загромождает код. Просто скажите в комментарии, что происходит.

angular.module("Dashboard") 
    .controller("DashboardController", function DashboardController (Interface) { 
    var vm = this; 

    /** 
    * Get Total Open Tickets 
    */ 
    Interface.openTickets().then(function (data) { 
     vm.tickets = objCount(data); 
     }); 
    }); 
+0

Спасибо за приглашение кронштейна C. Не знал об этом – stephenthedev

Смежные вопросы