从路由文件在模板文件中设置变量
set variable in template file from routes file
我的 index.hbs 文件中有此代码:
<button {{action 'showHotspots'}} class="btn btn-success padding">{{hotspotCategory.name}}</button>
我的 routes/index.js 文件中有 showHotspots 方法:
showHotspots: function( selection ) {
this.toggleProperty( 'idFromButton' );
}
该方法应该在我的 routes/index.js:
中切换这部分
{{#if idFromButton}}
<p>Test1</p>
{{/if}}
然而这是行不通的,当我将它作为一个组件来执行时它可以工作,但我需要在我页面的特定位置(在所有生成的按钮下方)使用 Test1。当我在组件中执行此操作时,Test1 会显示在按钮之间。
我不想在我的 index.js 文件中使用组件,这样我就可以控制页面的结构。
简而言之:在我的 index.hbs 上,我有一个 if 语句来检查变量是否为真。我想使用在同一 index.hbs 文件或组件中调用的方法从我的 routes/index.js 文件(或从其他地方,真的无关紧要)设置此变量-1.hbs 文件.
如果我理解这个问题,你使用组件,你应该对你的组件的动作使用方法"showHotspots",如果不理解你应该对你的控制器的动作使用这个方法。
最好详细描述一下你的问题。
编辑:如果你使用旧版本的ember js,这是一个例子
//#### controller index.js
App.IndexController = Ember.Controller.extend({
idFromButton: false,
actions: {
showHotspots: function( selection ) {
this.toggleProperty( 'idFromButton' );
}
}
});
//#### index.hbs (your index controller template)
<button {{action 'showHotspots'}} class="btn btn-success padding">some text</button>
{{#if idFromButton}}
<p>Test1</p>
{{/if}}
(简单的)解决方案是:
this.controller.toggleProperty( 'idFromButton' );
我的 index.hbs 文件中有此代码:
<button {{action 'showHotspots'}} class="btn btn-success padding">{{hotspotCategory.name}}</button>
我的 routes/index.js 文件中有 showHotspots 方法:
showHotspots: function( selection ) {
this.toggleProperty( 'idFromButton' );
}
该方法应该在我的 routes/index.js:
中切换这部分{{#if idFromButton}}
<p>Test1</p>
{{/if}}
然而这是行不通的,当我将它作为一个组件来执行时它可以工作,但我需要在我页面的特定位置(在所有生成的按钮下方)使用 Test1。当我在组件中执行此操作时,Test1 会显示在按钮之间。
我不想在我的 index.js 文件中使用组件,这样我就可以控制页面的结构。
简而言之:在我的 index.hbs 上,我有一个 if 语句来检查变量是否为真。我想使用在同一 index.hbs 文件或组件中调用的方法从我的 routes/index.js 文件(或从其他地方,真的无关紧要)设置此变量-1.hbs 文件.
如果我理解这个问题,你使用组件,你应该对你的组件的动作使用方法"showHotspots",如果不理解你应该对你的控制器的动作使用这个方法。
最好详细描述一下你的问题。
编辑:如果你使用旧版本的ember js,这是一个例子
//#### controller index.js
App.IndexController = Ember.Controller.extend({
idFromButton: false,
actions: {
showHotspots: function( selection ) {
this.toggleProperty( 'idFromButton' );
}
}
});
//#### index.hbs (your index controller template)
<button {{action 'showHotspots'}} class="btn btn-success padding">some text</button>
{{#if idFromButton}}
<p>Test1</p>
{{/if}}
(简单的)解决方案是:
this.controller.toggleProperty( 'idFromButton' );