Ember中的“this”.js链接到助手
'this' in ember.js link-to helper
我正在尝试获得流行ember.js
框架的实践经验,并对许多神奇的东西感到非常惊讶。
其中之一是this
link-to
车把助手,我无法消化。
以下是我的代码方案:
// handlebar script
<script type='text/x-handlebars' data-template-name='products'>
<h1>Products</h1>
<ul class='list-unstyled col-md-8'>
{{#each}}
<h2>{{title}}</h2>
<p>{{#link-to 'product' this class='btn btn-success' }}Buy for ${{price}}{{/link-to}}</p>
{{/each}}
</ul>
</script>
// in app.js
App.PRODUCTS = [
{
title: 'Chair',
price: 99,
description: 'Chair is...',
},
...
];
App.Router.map(function() {
this.resource('products');
this.resource('product', { path: '/products/:title'});
});
App.ProductsRoute = Ember.Route.extend({
model: function() {
return App.PRODUCTS;
}
});
App.ProductRoute = Ember.Route.extend({
model: function(params) {
return App.PRODUCTS.findBy('title', params.title);
}
});
我知道this
指的是模板中的current product
,但我的问题是:
- 它是否与
App.ProductRoute
或router
相互作用?如果是,如何? - 我们可以用
this.title
代替this
吗?
-
是的,
link-to
助手可以。link-to
帮助程序会根据您提供的信息构建 URL。使用路由名称,它会查找路由器中定义的路由,并使用您指定的路径。然后,它使用来自对象的 ID 来填充动态段。如有必要,它还确保正确填写父路由。 -
不,您需要使用
this
,因为它需要id
来构建 URL。你以前只能this.id
传球,但我认为你再也做不到了。(无论如何,这是一个坏主意。此外,Ember.js 将使用您传递的对象作为路由的模型,从而跳过ProductRoute
中的model
钩。你传递给它的对象可以是完全加载的模型,也可以是模型的承诺。
相关文章:
- Hammer.js阻止在Android Webview中点击超链接
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 如何从外部链接JS文件
- 正在Rail应用程序中链接JS文件
- 页面加载时出现浏览器链接 JS 错误
- Chrome扩展:从弹出窗口发送数据以取消链接JS文件
- 如何制作一个按钮,当悬停在上面时,会滑动并显示链接 (JS)
- 有条件地以角度显示链接.js
- 排除具有自动链接器的特定链接.js
- 图片链接替换为其他链接JS
- 链接js和immacro来自动填写表单
- 链接JS和jQuery文件
- AngularJs -在js指令中链接js代码
- 如何在钛中链接js页面
- 为什么我不能连接到外部链接.js ?(使用Xcode插件phonegap)
- 绕过打开链接js的限制
- 如何链接JS路由变量和Symfony 2 url
- 脚本标签-不链接(JS平台游戏)
- 如何向图表添加链接.js(圆环图)
- 如何使列成为数据表中的链接.js