2016-11-18 4 views
0

Есть ли какая-то разница (возможно в производительности) между этим стилем добавления функций (угловыми) скриптами, или они по существу эквивалентны:угловой и равниной JavaScript функции, лучшая практика

Варианта 1: функция внутри контроллеров

AngularApp.component('component', { 
    templateUrl: '/domain/app/component.html' 
    , controller: function ($scope,$rootScope,api) { 

     $scope.var = false; 
     getBackendData(); 

     //get data about available io_engines from the backend 
     function getBackendData() { 
      console.log("loading backend data...");    
      api.get().then(
       function (response) {     
        console.log("Backend data loaded."); 
       }) 
       .catch(function (err) { 
        console.log("Error getting data from backend"); 
        console.log(err); 
       }); 
     } 
    } 

}); 

Вариант 2: функция вне контроллера

AngularApp.component('component', { 
     templateUrl: '/domain/app/component.html' 
     , controller: function ($scope,$rootScope,api) { 

      $scope.var = false; 
      getBackendData(); 
     } 
    }); 


    //get data about available io_engines from the backend 
    function getBackendData() { 
       console.log("loading backend data...");    
       api.get().then(
        function (response) {     
         console.log("Backend data loaded."); 
        }) 
        .catch(function (err) { 
         console.log("Error getting data from backend"); 
         console.log(err); 
        }); 
    } 

Я (думаю) понять getBackendData() во втором варианте стали это глобальная функция, но я не очень понимаю последствия.

ответ

2

Если вы определяете функцию в компоненте, у вас будет одно определение функции для каждого экземпляра компонента, поэтому теоретически это займет больше памяти.

Во втором примере у вас будет только одна функция для каждого приложения.

Но такая разница действительно академическая. большая проблема здесь является то, что такого рода функции должны быть определены в (или) службы, так что они могут быть:

  • испытания
  • возможно повторно использовать в других местах
  • высмеивал в испытания компонентов
Смежные вопросы