Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Ember服务中的其他方法调用方法_Javascript_Ember.js - Fatal编程技术网

Javascript 从Ember服务中的其他方法调用方法

Javascript 从Ember服务中的其他方法调用方法,javascript,ember.js,Javascript,Ember.js,我正在学习Ember.js,遇到了一个小问题。我有一个服务,我想调用在同一对象中定义的另一个方法,如下所示: export default Ember.Service.extend({ myMethod: function() { ... }, otherMethod: function() { this.myMethod(); // <---- this doesn't work this.get('myMethod')(); // <---- also

我正在学习Ember.js,遇到了一个小问题。我有一个服务,我想调用在同一对象中定义的另一个方法,如下所示:

export default Ember.Service.extend({
  myMethod: function() { ... },

  otherMethod: function() {
    this.myMethod(); // <---- this doesn't work
    this.get('myMethod')(); // <---- also doesn't work
    Ember.run.bind(this, this.myMethod)() // <---- no dice
  }
});
导出默认Ember.Service.extend({
myMethod:函数(){…},
otherMethod:function(){

this.myMethod();//我猜您已经从这一点开始了。但这里有一个余烬旋转,以防演示服务如何引用自己的方法。正如评论中所说,这是关于
的javascript内容


您的问题在任何类型的细节上都非常简短,例如如何初始化和调用
myMethod()
关于你的服务。但是,你不应该扩展
Ember.service
而应该扩展
Ember.Object
,你应该正确地初始化它:我认为你没有抓住问题的重点,或者我解释得不够好。在对象的定义中,我有两种方法:
a()
b()
。我想从
b()
中调用
a()
。到目前为止,我还没有找到这样做的方法。再一次,从
obj.b()
调用
a()
,只要正确初始化对象并调用初始的
otherMethod(),就可以很好地工作(它只是Javascript,没有余烬特有的功能)
作为该对象上的方法,但您没有显示执行该操作的代码。在otherMethod中,“this”的值是多少?它可能没有提供您的ember服务的引用。您需要从“this”中找到您的服务方法的引用引用..还取决于调用otherMethod的位置,因为它为它定义了此引用..我在视图中也遇到了类似的问题,在视图中,我无法调用其他函数,因为它为我提供了窗口而不是视图的引用。如果您需要该示例,请告诉我。谢谢@JasonSwati是正确的,您的上下文不是对象,如何是否调用了otherMethod?这很可能就是你的上下文被foobreed的地方。我知道这很旧,但我如何才能让这个旋转工作呢?我基本上添加了一个函数调用,
displayMovies()
,对于您在twiddle中所做的操作,您好@MarcusRenno,如果我正确阅读了您的twiddle,您希望触发使用电影服务显示电影。不过,我建议您不要这样做。电影服务是单例的,可能比您计划在其上显示内容的组件寿命长,或者您可能希望在多个不同的组件之间共享它组件。相反,使用服务存储数据并使用组件使用数据可能是你最好的选择。这是一个很好的建议,但我试图问的问题不同。函数displayMovies的创建只是为了尝试在另一个函数中使用一个函数,以防一个函数开始变大。我喜欢保留功能分开,以便更容易阅读/维护