1

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

Угловая Фабрика:

  app.factory('HomeFactory', function() { 
      // create a object using constructor function 
       var HomeFactory = function() { 
       console.log('in the constructor function'); 
       }; 
       HomeFactory.contactSubmit = function() { 
       var self = this; 
       console.log(self.model); 
       } 
       // returning the factory object 
       return (HomeFactory); 
       }); 

Угловая Контроллер:

app.controller('HomeController', function($scope, $state, HomeFactory) { 
    $scope.HomeFactory = HomeFactory; 
} 

);

+1

Возможно, вам нужен экземпляр? '$ scope.home = new HomeFactory()'? –

+0

также, ваш 'contactSubmit' должен быть' HomeFactory.prototype.contactSubmit' с 'this' вместо undefined' self' –

+0

Выполнено, изменено self, чтобы взять ссылку «this». И я вижу, что многие разработчики присоединяют методы к прототипу объекта, когда оба, кажется, работают нормально, я уверен, что есть причина, которая рекомендована. –

ответ

1

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

$scope.home1 = new HomeFactory(); 
$scope.home2 = new HomeFactory(); 
Смежные вопросы