Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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.js控制器函数_Javascript_Jquery_Ember.js_Ejs_Handlebars.js - Fatal编程技术网

Javascript 通过自动化操作调用Ember.js控制器函数

Javascript 通过自动化操作调用Ember.js控制器函数,javascript,jquery,ember.js,ejs,handlebars.js,Javascript,Jquery,Ember.js,Ejs,Handlebars.js,当前,我的站点在我的index.ejs文件中包含一个搜索栏,当用户按下enter键或单击我的搜索按钮时,它使用{{action createSearch}}调用我的控制器的“createSearch”函数。这很好用!现在,我正在测试新功能,并希望直接从index.ejs文件调用newSearch函数,而无需任何用户交互。我尝试过使用jquery-on-load模拟按键/点击,但控制器似乎没有调用动作事件 编辑:包含functional index.js代码 {{view Emb

当前,我的站点在我的index.ejs文件中包含一个搜索栏,当用户按下enter键或单击我的搜索按钮时,它使用{{action createSearch}}调用我的控制器的“createSearch”函数。这很好用!现在,我正在测试新功能,并希望直接从index.ejs文件调用newSearch函数,而无需任何用户交互。我尝试过使用jquery-on-load模拟按键/点击,但控制器似乎没有调用动作事件

编辑:包含functional index.js代码

         {{view Ember.TextField id="new-search" placeholder="enter a few keywords"
             valueBinding="newSearch" action="createSearch"}}         
        <div id="gobutton" {{action createSearch}}><div id="gobutton_inner">SEARCH</div></div>
{{view Ember.TextField id=“新建搜索”占位符=“输入几个关键字”
valueBinding=“newSearch”action=“createSearch”}
搜寻

对于这样的系统级操作,最好使用
应用程序路由上的事件。您的控制器/视图可以发送类似
createSearch
的事件,路由通常通过知道如何执行此操作的控制器来处理该事件

App.ApplicationRoute = Em.Route.extend({
  events: {
    createSearch: function(query) {
      var controller = this.controllerFor('search');
      controller.doSearch(query);
    }
  }
});
从任何控制器的操作处理程序,您都可以使用

this.send('createSearch', query);
或者从一个角度来看,

this.get('controller').send('createSearch', query);

您需要连接您的单个操作处理程序来执行此事件触发。

您的
索引.ejs
看起来如何,代码是非常值得欣赏的后续问题,您希望从何处以编程方式调用
createSearch
操作?从另一个控制器内部可能?
事件
在Ember 1.0中被弃用,但您可以使用
操作