Ember.js Ember 2.0作为过渡到的替代方案,因为它已被弃用
所以我尝试制作一个名为“fsol app btn”的组件,它是一个标记链接。 我做的第一件事是更改component.js中的标记名,使其在页面上正确呈现为标记 下面是component.js:Ember.js Ember 2.0作为过渡到的替代方案,因为它已被弃用,ember.js,ember.js-2,Ember.js,Ember.js 2,所以我尝试制作一个名为“fsol app btn”的组件,它是一个标记链接。 我做的第一件事是更改component.js中的标记名,使其在页面上正确呈现为标记 下面是component.js: export default Ember.Component.extend({ classNames: ['btn', 'btn-app'], tagName: 'a', num: false, color: 'aqua', route: 'dashboard',
export default Ember.Component.extend({
classNames: ['btn', 'btn-app'],
tagName: 'a',
num: false,
color: 'aqua',
route: 'dashboard',
mouseDown: function() {
console.log('f'+this.get('route'));
//this.transtionTo(this.get('route'));
this.sendAction('action', this.get('route'));
}
});
以下是组件的模板.hbs:
{{#if num}}
<span class="badge bg-{{color}}">{{num}}</span>
{{/if}}
<i class="fa fa-{{icon}}"></i>{{title}}
图标
,标题
,颜色
,和num
都可以工作,并且只用于设计样式,因此这一组件可以用于我想要的任何类型的按钮
但是该按钮的主要功能是单击并执行某些操作,在这种情况下,我希望它转到一个路由,例如指向助手的链接。
我尝试传递一个route='route'name'
,然后在mouseDown
上调用this.transionto(this.get('route'))
但是我收到了一个不推荐的警告,它不起作用
那我该怎么做呢?
顺便说一句:我也尝试了this.sendAction()
,在这种情况下,我有一个名为“clicked”的操作,定义如下:
{{fsol-app-btn icon='bullhorn' action="clicked" title='Notifications' route='index' num='3' color='yellow'}}
但后来我得到一个错误,说我的fsol应用程序btn的父组件没有操作处理程序:clicked
我试着在我认为会引起轰动的地方到处走路线,但没有成功
有什么想法吗?@locks是对的。您希望使用指向helper的链接,并指定类,使其行为类似于代码示例中的按钮 指向的链接支持内联和块调用,因此您应该能够将您的徽章、文本等放在指向帮助器的链接中 只需在组件的模板中添加如下内容
{{#链接到路由classNames=“btn btn app”}
{{{#if num}}
{{num}}
{{/if}
{{title}}
{{/链接到}
适用的余烬Api-@locks是正确的。您希望使用指向helper的链接,并指定类,使其行为类似于代码示例中的按钮 指向的链接支持内联和块调用,因此您应该能够将您的徽章、文本等放在指向帮助器的链接中 只需在组件的模板中添加如下内容
{{#链接到路由classNames=“btn btn app”}
{{{#if num}}
{{num}}
{{/if}
{{title}}
{{/链接到}
适用的余烬Api-为什么不使用链接到?你的问题不太清楚。当前正在实施一个对您有用的方法。当您从控制器而不是路线过渡时,您还需要
过渡路线
。为什么不使用链接到?你的问题不太清楚。当前有一个正在实施的应用程序对您有用。当您从控制器而不是路由转换时,您还需要transitionToRoute
。主要原因是当它呈现页面时,我在一个“a”标记中有一个“a”标记,如下所示:同时,按钮的css全部关闭,无法正确呈现,再加上有两个“a”标签是愚蠢的。这就是为什么我将组件的标记名更改为“a”标记名的原因。有几个选项:*您可以将标记名保留为默认的“div”*从技术上讲,您可以将标记名设置为“”,但它不受很好的支持*组件具有隐式的“单击”处理程序。您可以实现这一点,并调用一个闭包操作,该操作源于一个有权访问transitionTo
*的路由还有一个ember route action helper,允许您在显式路由上调用操作。在这里,你可以再次访问Transitiono方法。主要原因是当它呈现页面时,我在一个“a”标记中有一个“a”标记,如下所示:此外,按钮的css全部关闭,无法正确呈现,再加上使用双“a”标记是愚蠢的。这就是为什么我将组件的标记名更改为“a”标记名的原因。有几个选项:*您可以将标记名保留为默认的“div”*从技术上讲,您可以将标记名设置为“”,但它不受很好的支持*组件具有隐式的“单击”处理程序。您可以实现这一点,并调用一个闭包操作,该操作源于一个有权访问transitionTo
*的路由还有一个ember route action helper,允许您在显式路由上调用操作。在这里,您同样可以访问transitiono方法
{{fsol-app-btn icon='bullhorn' action="clicked" title='Notifications' route='index' num='3' color='yellow'}}