首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于条件逻辑的车把帮助将视图插入模板

基于条件逻辑的车把帮助将视图插入模板
EN

Stack Overflow用户
提问于 2013-02-05 06:57:08
回答 1查看 733关注 0票数 1

我有一个在实体数组上迭代的模板。

我想根据一些逻辑为这些实体显示一个“删除”按钮,我只是想了解最好的方法来做到这一点。

实际的delete按钮将使用以下标记呈现,请注意,标记包括对内置操作助手的调用。

代码语言:javascript
复制
<button class="btn btn-danger" {{action "removeEntityFunctionInController" entitity}}><i class="icon-remove icon-white"></i> Remove</button>

我想把这个换成

代码语言:javascript
复制
{{optionalRemoveEntityButton entity}}

我正在尝试创建一个没有逻辑的模板,所以我想也许我可以创建一个助手,如:

代码语言:javascript
复制
Ember.Handlebars.registerHelper('optionalRemoveEntityButton', function(entity, options) {
  logicForDeterminingWhetherToShowView 
  removeEntityButtonView = howDoILoadAViewProgrammatically?
  return removeEntityButtonView;
});

我不明白如何以编程方式加载视图。我想使用一个视图,因为这个助手不只是返回一些简单的标记。它还包括对{action}助手的调用。

除非有更好的方法来实现我想做的事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-05 13:17:29

我有一个在实体数组上迭代的模板。我想根据一些逻辑为这些实体显示一个“删除”按钮,我只是想了解最好的方法来做到这一点。

这是一个非常常见的用例。这种逻辑的思想位置在控制器中。

实际的删除按钮将使用以下标记呈现,请注意,标记包括对内置操作助手的调用。:<button class="btn btn-danger" {{action "removeEntityFunctionInController" entitity}}><i class="icon-remove icon-white"></i> Remove</button>。 我想把这个换成{{optionalRemoveEntityButton entity}}

我建议您保留原始标记。

除非有更好的方法来实现我想做的事?

将逻辑排除在模板之外是一个很好的目标,但一般来说,这并不意味着要构建大量的车把帮手。通常,只有在发现在许多视图中重复的显示逻辑时,才会构建帮助程序。

另一种方法是使用{{#if}}助手有条件地显示按钮。

代码语言:javascript
复制
{{#if showDeleteButton}}
  <button class="btn btn-danger" {{action "removeEntityFunctionInController" entitity}}><i class="icon-remove icon-white"></i> Remove</button>
{{/if}}

您将需要将您的itemController属性ArrayController设置为一个控制器的名称(可能是一个ObjectController),该控制器将包装每个单独的项。然后在该showDeleteButton上定义itemController方法。有关设置这一设置的详细信息,请参阅Ember.ArrayController文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14701815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档