Javascript:如何在app / js / services / controllers中使用/ core函数Angular

时间:2018-03-26 11:47:42

标签: javascript angularjs

(角-JS)

我有函数locationChange(x,y),它占用2个args,函数位于core / services中。

var locationChange = function(x, y) {
    return new Promise(function(resolve, reject) {
        ---

现在我想在app / js / services / controllers中使用该功能,我不知道该怎么做。

angularApp.controller('EditLocationController,function(...'

链接它的步骤是什么?

2 个答案:

答案 0 :(得分:0)

编辑:OP修改了帖子,指出他们正在谈论以前版本的Angular,但逻辑不应该改变。创建一个服务并将其注入您的组件。

我假设你在谈论角度(v2 +)而不是AngularJS。

通常,您可以在服务中定义方法,例如:

@Injectable()
export class MyService{

  constructor() { }

  myMethod(): {
    ...
  }

}

然后,您可以将服务注入组件以使用其方法,如:

import { MyService} from '...';

@Component({
  selector: '...',
  templateUrl: '...',
  styleUrls: ['...']
})
export class MyComponent {

  constructor(private service: MyService) { }

  this.service.myMethod()
}

答案 1 :(得分:0)

在AngularJS 1中,您可以创建一个新的服务模块来保存您的功能并在您的指令中使用它。

  

服务

(function() {
   'use strict';

   // Implementation of service
   angular.module('your.library.module', [])
   .factory('mylib', function() {

     return {
       locationChange : function(x, y) {
         ...
       }, 
       myOtherFunction : function() {
         ...
       }
   }
});
  

指令

(function() {
   'use strict';    

   angularApp = angular.module('your.module', [ 'your.library.module' ]);
   ...
   angularApp.controller('EditLocationController', ['mylib', function(mylib) {
      mylib.locationChange (x,y);
   }]);
})