我想要Ember.js'{{input value=“searchTerm”}}以将其值设置为''
I want Ember.js' {{input value="searchTerm"}} to set its value to ' ' when the URL changes
我会尽量简化这个问题,
但我需要我的handlebar.js‘{{input value="searchTerm"}}在每次URL更改时将searchTerm的值设置为"null"。
上面描述的输入旨在自动过滤同一页面上的列表。在输入中键入会自动将"searchTerm"的值更新为键入的
值searchTerm在名为searchResults 的操作中定义
这是控制器中的一个属性:
searchResults: function() {
var searchTerm = this.get('searchTerm');
var regExp = new RegExp(searchTerm, 'i');
// We use `this.filter` because the contents of `this` is an array of objects
var filteredResults = this.filter(function(category) {
return regExp.test(category.get('categoryName'));
});
return filteredResults;
}.property('@each.categoryName', 'searchTerm'),
所以要分解我需要的东西:
- 无论
searchTerm
的当前值是多少,都需要将其设置为" - 只有在页面转换时才会将searchTerm的值设置为"
这可以通过didTransition
或willTransition
事件处理程序在Route上完成。路由有一个对其controller
的引用(通过this.controller
),并且您仍然可以通过controllerFor
获得它(例如:var c = this.controllerFor('controllerName')
;所以您可以这样做:
App.SomeRouteThatErasesTheSearchTermRoute = Ember.Route.extend({
actions: {
// you could implement with didTransition. No arguments for didTransition tho
didTransition: function() {
this.controller.set('searchTerm', '');
},
// OR, implement with willTransition
willTransition: function(transition) {
this.controller.set('searchTerm', '');
}
}
});
您也可以将其实现为一个单独的方法,该方法将被激发on('willTransition')
,因此您可以保留任何现有的处理程序,并只附加您的处理程序。然后,您可以将其制作为其他路由使用的mixin,或者其他路由可以从此类继承,而不破坏任何其他自定义转换处理程序(如果有的话)。
相关文章:
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 使用 js 将背景图像设置为 HTML
- jQuery在MVC应用程序中设置JS变量
- 从 HTM 中设置 JS 函数的变量
- htaccess设置js的过期时间
- 使用 PHP var 和 AJAX 设置 JS var
- 要在 D3 中使用的 JSON 文件中的格式设置.js
- 区域设置 JS 的货币代码
- 为什么控制台在原型中将 e.explicitOriginalTarget.value 显示为在粘贴或剪切事件上设置.js
- 如何设置js加载顺序
- 如何从Drupal6安装中取消设置js文件:不´t与“;删除脚本[]”;在我的模板文件中
- 如何在正确的时间设置JS事件
- 如何在后台bean管理的进度条上设置JS效果
- JS:创建输入类型文件多个,并设置JS数组作为值
- 在express/jade文件中设置JS和CSS路径的正确方法是什么?
- 如何设置js函数滚动让它不超过父元素的底部
- 在RAILS 3.1中设置js资产的Cache Control头
- Joomla - 如何使用用户在模板参数中提供的信息从头部取消设置 JS 文件
- 我如何设置JS在后台运行,同时保持不显眼
- 如何设置JS客户端来执行远程API请求