标签: partials

模块化Zend框架,具有部分基础

目前我发现我必须为不同的模块重复部分.

我想有一个案例目录,供所有部分访问.

有没有人有这样做的好方法?

谢谢

zend-framework partials

7
推荐指数
2
解决办法
2692
查看次数

Asp.Net MVC 3 - @ Html.Action不会呈现/返回任何HTML

我今天一直在将一个相当新的项目从ViewPages搬到Razor,一切似乎都很顺利.除了我试图使用Html.Action呈现用户控件,它不会呈现任何东西.

所以我有一个在Home/Index.cshtml中引用的Shared/_Layout.cshtml文件

Index.cshtml具有以下内容:

<article>

@Html.Action("LatestBlogsMainPanelWidget", "Blogs")

...

</article>
Run Code Online (Sandbox Code Playgroud)

我把陷阱放在BlogsController中,所以我知道这是被请求的.我也知道正在返回一个模型,视图引擎正在找到LatestBlogsMainPanelWidget,甚至正在运行一些伪Razor语法代码:@ {var s ="hello"; }

但是这个文件中的普通html没有进入浏览器.我也尝试了其他(以前工作)的部分,它们也不会出现(页面上的查看源确认它不存在).

我也试过替换@ {Html.RenderAction(...); } 没有成功.@ Html.Action的任何一侧都出现HTML,所以我知道Index.cshtml正在显示.

更诡异的_layout文件也有Html.Action命令和他们似乎罚款.

我真的不确定还有什么要检查,或者如何确认管道正在获取HTML.任何人都可以帮忙吗?

谢谢!

partials renderaction razor asp.net-mvc-3

7
推荐指数
3
解决办法
2万
查看次数

是否有可能将本地人通过部分传递到另一部分?

这是一个例子来说明这个问题:

应用程序/视图/职位/ show.html.haml

.post
  = render partial: 'avatar', locals: { user: @post.user }
  = @post.title
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _avatar.html.haml

.avatar
  = render partial: 'avatar_image', locals: { user: user }
  = user.name
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/共享/ _avatar_image.html.haml

= image_tag user.image.url
Run Code Online (Sandbox Code Playgroud)

将部分接收的局部传递_avatar.html.haml给部分_avatar_image.html.haml将消除重复本地的需要(此处:) { user: user }.

我知道,我可以使用实例变量.但我想知道是否有办法将所有收到的当地人一般性地传递给基础部分.

ruby-on-rails partials

7
推荐指数
1
解决办法
2071
查看次数

如何从部分内部而不是具有相同名称的局部变量中访问:locals哈希?

除了一个好主意之外,我想知道如何从部分内部访问:locals哈希而不是同名的局部变量?

我试图尝试探索一种可能更有效的模式方法,我经常发现自己涉及默认的部分值:

:locals => { :opts => {:myvar => @myvar}}
Run Code Online (Sandbox Code Playgroud)

然后在里面部分:

opts.reverse_merge!(defaults)
Run Code Online (Sandbox Code Playgroud)

编写它会更加清晰(特别是当opts变得更多时):

:locals => { :myvar => @myvar}
Run Code Online (Sandbox Code Playgroud)

然后在里面部分:

opts => defaults.merge(local_hash)
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails partials

7
推荐指数
1
解决办法
864
查看次数

Jbuilder部分与路径

我试图使用下面的代码渲染部分jbuilder文件

json.(@request, :id)

json.profile do
    json.partial! partial: 'users/user_reduced', user: @request.user
end
Run Code Online (Sandbox Code Playgroud)

部分在下面(users/_user_reduced.json.jbuilder)

json.(user, :id, :name, :sex)
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:

ActionView::Template::Error (undefined local variable or method `user' for #<#<Class:0x007fe4ebc91878>:0x007fe4ebe599f8>):
Run Code Online (Sandbox Code Playgroud)

就像没有设置本地用户变量一样.将局部变量设置为jbuilder部分路径的语法是什么?

ruby ruby-on-rails jbuilder partials

7
推荐指数
1
解决办法
4678
查看次数

是否可以只在部分中放置一个rails form元素?

我的应用程序有一个选择框供用户选择"场地".正如您所料,此选择框位于表单中.我还在页面的某个位置通过AJAX创建了一个新的场地.创建新场地后,我想更新场地选择框以反映这一点.

我的解决方案是将选择框放在部分中,并从控制器中的create动作渲染部分.

 <div id="venue_select" style="clear: both;">
    <%= render :partial => 'venue/venue_select_box' %>
 </div>
Run Code Online (Sandbox Code Playgroud)

部分看起来像这样:

<%= f.collection_select :venue_id, @user_venues, :id, :name, :prompt => 'Select a venue' %>
Run Code Online (Sandbox Code Playgroud)

其中f是表格参考:

<% form_for :shows do |f| %>
Run Code Online (Sandbox Code Playgroud)

问题是f在partial中未定义,所以我得到一个错误.一种解决方案是包含整个表单,但我觉得这不应该是必要的,因为我没有更新整个表单.关于如何解决这个问题的任何想法?

ruby forms renderpartial ruby-on-rails partials

6
推荐指数
2
解决办法
5473
查看次数

CodeIgniter或PHP等效的Rails部分和模板

在CodeIgniter中,或核心PHP; 是否有相当于Rails的视图部分和模板?

部分会让我在视图中渲染另一个视图片段.我可以有一个共同的navbar.php观点,我可以指向我的homepage.php观点.模板将在一个位置定义HTML页面的整体shell,并让每个视图只填充正文.

我在CodeIgniter文档中找到的最接近的东西是加载多个视图,其中在控制器中按顺序呈现多个视图.在控制器内部控制我的页面的视觉外观似乎很奇怪.(即移动导航栏我的设计师必须编辑控制器).

我一直在寻找堆栈溢出的PHP方法来实现这一目标.我找到了这个页面,它讨论了用ob_start模拟部分.这是CodeIgniter中推荐的方法吗?

php codeigniter partials

6
推荐指数
2
解决办法
7105
查看次数

在部分via = yield内渲染内容

我正在使用ruby在rails上创建一个应用程序,其中有一个项目/ _item.html.erb.partial内部是一个yield语句,所以我可以根据需要添加额外的内容.在这种情况下,我想根据视图调用部分向项目添加特定按钮.

这是我试过的,它渲染部分,但它不渲染块:

_item.html.erb

<%= yield if block_given? %>
<div>
  <%= item.name %>
</div>
Run Code Online (Sandbox Code Playgroud)

someview.html.erb

...

<% render(:partial => 'items/item', :collection => current_user.items do %>
  <%= "HELLO" %>      
<% end %>

...
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用content_for和其他一些东西但没有成功.有没有办法能够在部分通过收益率内呈现特定内容?我目前正在使用Rails3

编辑:

我发现它是:集合哈希使得无法插入块.

这两段代码都有效:

<%= render :layout => 'items/item' do %>
      Hello world      
<% end %>

<%= render :layout => 'items/item', :locals => {:item => current_user.items.first} do %>
  Hello world      
<% end %>
Run Code Online (Sandbox Code Playgroud)

这意味着如果我做了一个.我可以完成我想要的东西,但这将是丑陋的代码.有人知道解决这个问题吗?

ruby-on-rails partials ruby-on-rails-3

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

锂的部分

通常我使用Zend Framework,这是我在Lithium中遗漏的东西.谐音.在视图中有一个渲染方法,你可以使用最接近的'elements'.

<?php $this->_render('element', 'form); ?>
Run Code Online (Sandbox Code Playgroud)

这确实有效,但它要求form.html.php文件位于/ views/elements文件夹中.是否可以让它在另一条路径中搜索?喜欢/ views/users /所以它获取文件/views/users/form.html.php.

我尝试了以下内容,因为我发现render方法确实接受了一个options参数,您可以在其中指定路径.所以我帮助我解决了这个问题.

namespace app\extensions\helper;
use lithium\template\TemplateException;

class Partial extends \lithium\template\Helper
{
public function render($name, $folder = 'elements', $data = array())
{
    $path = LITHIUM_APP_PATH . '/views/' . $folder;     
    $options['paths']['element'] = '{:library}/views/' . $folder . '/{:template}.{:type}.php';

    return $this->_context->view()->render(
        array('element' => $name),
        $data,
        $options
    );
}
}
Run Code Online (Sandbox Code Playgroud)

但是它仍然只在/ view/elements文件夹中搜索,而不是在我指定的路径中搜索.

有什么我做错了吗?

php templates view partials lithium

6
推荐指数
2
解决办法
1920
查看次数

Rails没有路由匹配{:controller =>"devise/products"}

当我尝试登录或注册时,我在rails应用程序上收到以下错误(我正在使用Devise GEM进行登录).

Routing Error
No route matches {:controller=>"devise/products"}
Run Code Online (Sandbox Code Playgroud)

可以在此处找到应用程序的所有源代码:https://github.com/rossmc/topsnowboards

我试图改变link_toapplication.html.erb产品/ index.html.erb来自:

<%= link_to 'sign in', new_user_session_path  %>
Run Code Online (Sandbox Code Playgroud)

至:

<%= link_to 'sign in', :controller => "/products", new_user_session_path %>. 
Run Code Online (Sandbox Code Playgroud)

但这只会引发更多错误.

有趣的是,在我添加购物车的部分之前,登录功能和路由工作正常,我在上次提交时将其放在application.html.erb中.当我删除此部分时,路由错误消失,但我丢失了部分视图/ cart/_cart.html.erb.

下面是我尝试登录并运行rake routes命令时的控制台转储.提前感谢您抽出时间来看看这个.

控制台转储

Connecting to database specified by database.yml
DEPRECATION WARNING: Passing a block to devise_for is deprecated. Please remove the block from devise_for (only the block, the call to devise_for must still exist) and call devise_scope …
Run Code Online (Sandbox Code Playgroud)

model-view-controller routes ruby-on-rails partials devise

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