2016-09-07 3 views
0

в AngularJs, если вы вызываете метод службы:Javascript, как создать функцию сервиса (конструктор)

app.service('nameService', function(){ 
this.Service = function(){console.log('hello')} 
} 

, то вы можете использовать эту услугу (объект): nameService.Service() поэтому мой вопрос, как я может написать функцию, которая есть два аргумента (имя, функция)

function service (name, function){ 
// how angular declare object with that value of first argument ? 
} 

я спросить, как написать функцию, как сервис (имя, Fn) {}?

+0

Вы должны вводить услугу в контроллере, чтобы использовать его. Это то, что вы имеете в виду или что-то еще – ajaykumar

+0

нет, я не говорю о angularJs, я пытаюсь использовать js и функцию cunstractor для создания функции, такой как сервис в угловом режиме. когда вы вызываете служебную функцию в угловых js, что общего, что произошло – Alin

ответ

1

AngularJs использовать Dependency Injection вводить услугу.

Метод «обслуживания» доступен на угловом объекте, поскольку находится на его прототипе.

angular.prototype.service = ... 

вы можете прочитать больше о наследовании прототипа, MDN - Inheritance and the prototype chain

1

вы можете использовать обозначение скобки, чтобы получить значение аргументов.

сервисная функция (имя, п) {

var createService = function(){ 
     return new fn() 
    } 

    this[arguments[0]] = func() 
} 

service('nameService',function(){ 
    //here you can use 'this' because it's function constructor 

    this.getLog = function(){ 
     console.log('hello') 
    } 

}) 


//and you can user it like you want nameService.getLog() 
//Console: hello 
+0

Спасибо! Это то, что мне нужно – Alin

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