小编shs*_*shs的帖子

将"活动"类分配给EmberJS中的选定列表项

我有一个列表,我想自动将一个项目设置为class ="active".给出以下引导代码:

<ul class="nav">
<li {{bindAttr class="atIndex:active"}}>{{#linkTo "index"}}Index{{/linkTo}}</li>
<li {{bindAttr class="atAbout:active"}}>{{#linkTo "about"}}About{{/linkTo}}</li>
<li {{bindAttr class="atLogin:active"}}>{{#linkTo "login"}}Login{{/linkTo}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

atIndex,atAbout和atLogin驻留在我的ApplicationController中.

渲染为:

<ul class="nav">
<li class="active"><a...>Index{{/linkTo}}</li>
<li><a...>About<a></li>
<li><a...>Login<a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

使用Ember 1.0 pre4做到这一点的最佳方法是什么?我宁愿不为每个视图或控制器添加特殊代码.

PS - atIndex: true有效,但atIndex: function() {return true; }.property().volatile()没有.这让我觉得我做错了什么.

谢谢!

ember.js

40
推荐指数
4
解决办法
2万
查看次数

将Ember.js文本字段id用于<label>标记

标签标签的形式如下:

<label for="id_of_text_field">
<input type="text" name="example" id="id_of_text_field" />
Run Code Online (Sandbox Code Playgroud)

for标签的标签和id文本字段的标签必须匹配.我有两个想法可以在我的Ember.js模板中完成这项工作:

想法#1:我试图制作一个特殊的绑定命名field_id,用于labelTextField.我按如下方式执行:

<label {{bindAttr for="content.field_id"}}> {{content.label}}</label>
{{view Ember.TextField valueBinding="content.data" id="content.field_id"}}
Run Code Online (Sandbox Code Playgroud)

不幸的是,只有label'sid正确呈现.该TextField'sID并没有正确地渲染和真可谓是"metemorph ......东西或-其他".

想法#2:以某种方式召唤TextField的id并将其用于label标签,但是我担心在渲染label标签时TextField的id不会准备就绪.即使这不是问题,我也不知道如何TextField's从JS中找到id.

这是一个模板,所以我将有多个这样的标签/ TextField对.

如何让标签的for标签与id带有Ember.js 的TextField 标签相匹配?

谢谢!

UPDATE

使用Peter Wagenet的建议和稍作修改,我做了以下事情:

<label {{bindAttr for="textField.elementId"}}> {{content.label}}</label>
{{view Ember.TextField valueBinding="content.value" viewName="textField"}}
Run Code Online (Sandbox Code Playgroud)

使用此技术,用户现在可以单击标签以选择TextFields,CheckBoxes和Selects.

templates ember.js

19
推荐指数
2
解决办法
7573
查看次数

this.$emit 与 this.$root.$emit,vuejs 中的最佳实践

我有使用 .vue2 添加和删除的组件v-if。在某些情况下,我在$emit发送者和$on接收者之间进行通信。

我一直在使用this.$root.$emit广播自定义事件并this.$root.$on处理事件。我发现使用this.$root.$onrequire this.$root.$off(来自beforeDestroy),否则被删除的组件可能会尝试处理它,并且会发生不好的事情。

我有两个问题:

  1. this.$root.$emit和 和有什么区别this.$emit
  2. 如果我使用this.$on,我还必须将其配对吗this.$off?或者当组件被移除时处理程序会自动“关闭”吗?

event-handling vue.js vuejs2

6
推荐指数
1
解决办法
8603
查看次数

EmberJS路由澄清

我还是Ember.js的新手.该嵌套的资源例如规定如下:

URL:        /post/:post_id/comments/new
Route Name: comments.new
Controller: App.CommentsNewController
Route:      App.CommentsNewRoute
Run Code Online (Sandbox Code Playgroud)

鉴于这种:

  1. "post"在URL中,但为什么"post"不在路由名称,控制器或路由中?
  2. 如何消除"帖子"中的新评论与其他领域的新评论之间的歧义?
  3. 我没有在路由创建代码中看到templateName选项,所以这会在控制器中设置吗?

谢谢!

编辑:这个问题是关于Ember Pre4.

ember.js

2
推荐指数
1
解决办法
204
查看次数

标签 统计

ember.js ×3

event-handling ×1

templates ×1

vue.js ×1

vuejs2 ×1