我正在尝试重新使用我编写的提供面板样式的html组件.就像是:
<div class="v-panel">
<div class="v-panel-tr"></div>
<h3>Some Title</h3>
<div class="v-panel-c">
.. content goes here
</div>
<div class="v-panel-b"><div class="v-panel-br"></div><div class="v-panel-bl"></div></div>
</div>
Run Code Online (Sandbox Code Playgroud)
所以我看到渲染需要一个块.我想我可以这样做:
# /shared/_panel.html.erb
<div class="v-panel">
<div class="v-panel-tr"></div>
<h3><%= title %></h3>
<div class="v-panel-c">
<%= yield %>
</div>
<div class="v-panel-b"><div class="v-panel-br"></div><div class="v-panel-bl"></div></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
#some html view
<%= render :partial => '/shared/panel', :locals =>{:title => "Some Title"} do %>
<p>Here is some content to be rendered inside the panel</p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不适用于此错误:
ActionView::TemplateError (/Users/bradrobertson/Repos/VeloUltralite/source/trunk/app/views/sessions/new.html.erb:1: , unexpected tRPAREN
old_output_buffer = output_buffer;;@output_buffer = ''; …Run Code Online (Sandbox Code Playgroud) 我正在尝试生成包含一些HTML的JSON响应.因此,我有/app/views/foo/bar.json.erb:
{
someKey: 'some value',
someHTML: "<%= h render(:partial => '/foo/baz') -%>"
}
Run Code Online (Sandbox Code Playgroud)
我希望它渲染/app/views/foo/_baz.html.erb,但它只会渲染/app/views/foo/_baz.json.erb.传球:format => 'html'没有帮助.
当我渲染一个不存在的部分时,我得到一个例外.我想在渲染之前检查是否存在部分,如果它不存在,我将渲染其他内容.我在.erb文件中执行了以下代码,但我认为应该有更好的方法来执行此操作:
<% begin %>
<%= render :partial => "#{dynamic_partial}" %>
<% rescue ActionView::MissingTemplate %>
Can't show this data!
<% end %>
Run Code Online (Sandbox Code Playgroud) 例如,Ryan Bates的nifty_scaffolding就是这样做的
edit.html.erb
<%= render :partial => 'form' %>
Run Code Online (Sandbox Code Playgroud)
new.html.erb
<%= render :partial => 'form' %>
Run Code Online (Sandbox Code Playgroud)
_form.html.erb
<%= form_for @some_object_defined_in_action %>
Run Code Online (Sandbox Code Playgroud)
隐藏的状态让我感到不舒服,所以我通常喜欢这样做
edit.html.erb
<%= render :partial => 'form', :locals => { :object => @my_object } %>
Run Code Online (Sandbox Code Playgroud)
_form.html.erb
<%= form_for object %>
Run Code Online (Sandbox Code Playgroud)
那么哪个更好:a)有部分访问实例变量或b)传递部分所需的所有变量?
我一直在选择b)最近,但我确实遇到了一点点泡菜:
some_action.html.erb
<% @dad.sons.each do |a_son| %>
<%= render :partial => 'partial', :locals => { :son => a_son } %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
_partial.html.erb
The son's name is <%= son.name %>
The dad's name is …Run Code Online (Sandbox Code Playgroud) 我可以在不同的命名空间中创建部分类吗?它会正常工作吗?例如:
将Class1.cs
namespace name1
{
public partial class Foo
{
Bar1(){
return 10;
}
}
}
Run Code Online (Sandbox Code Playgroud)
class2.cs
namespace name1.name2
{
public partial class Foo
{
Bar2(){
return 100;
}
}
}
Run Code Online (Sandbox Code Playgroud)
main.cs
using name1;
using name1.name2;
namespace mainClass
{
public class mainClass
{
Foo classFoo = new Foo();
int Count = classFoo.Bar1() + classFoo.Bar2();
// Will Count = 110?
}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让它发挥作用?(如果我的例子不正确)
我在我的主布局文件中有这个
<body>
<header id="header" ng-controller="HeaderController"></header>
<div class="container" ng-view></div>
Run Code Online (Sandbox Code Playgroud)
我的目录结构中有一个header.html部分模板.
如何在我的应用中包含此模板?我认为angular在处理控制器后自动包含模板,但它不起作用.
标题节点应替换为此文件的内容.
我正在使用带有Razor视图引擎的MVC 3.我想在部分视图中的ViewBag中设置一些值,并希望在_Layout.cshtml中检索这些值.例如,当您设置默认的ASP.NET MVC 3项目时,您将在"/ Views/Shared"文件夹中获得_Layout.cshtml文件.在_Layout.cshtml中,页面标题设置如下:
<title>@ViewBag.PageTitle</title>
Run Code Online (Sandbox Code Playgroud)
然后在"/Views/Home/About.cshtml"视图中修改ViewBag的内容:
@{
ViewBag.Title = "About Us";
}
Run Code Online (Sandbox Code Playgroud)
这很好用.呈现"关于"视图时,页面标题为"关于我们".所以,现在我想在我的About视图中渲染一个Partial视图,我想修改我的Partial视图中的ViewBag.Title.( "/Views/Shared/SomePartial.cshtml")
@Html.Partial("SomePartial")
Run Code Online (Sandbox Code Playgroud)
在此部分视图中,我有以下代码:
@{
ViewBag.Title = "About Us From The Partial View";
}
Run Code Online (Sandbox Code Playgroud)
当我调试这段代码时,我看到ViewBag.Title被设置为"关于我们",然后在Partial视图中我看到它被重置为"关于我们从部分视图",但是当代码命中_Layout.cshtml时它会去回到"关于我们".
这是否意味着如果在部分视图中修改了ViewBag的内容,那么这些更改将不会在主视图(About.cshtml)或_Layout.cshtml中显示(可访问)?
提前致谢!
我有一些数据ViewData.Model,在我看来,我想写一个局部视图,并传递我在页面中的当前模型.
我如何传递他们的电流ViewData.Model并通过部分位置渲染它们?
我试图将上游更改合并到我的分支中时遇到冲突,我不知道如何解决它们.
我创建了自己的fork.我克隆了它.我对我的分支,承诺和推送的分支进行了更改.但后来主叉更新了,我尝试通过合并上游来更新我自己的fork:
$ cd repo-name
$ git remote add upstream git://github.com/username/repo-name.git
$ git fetch upstream
$ git merge upstream/master
Run Code Online (Sandbox Code Playgroud)
合并说文件存在一些问题,自动合并不起作用.它告诉我自己修复并重新合并.所以我实际上去了主叉的GitHub上的(上游)存储库,并将新文件的所有代码复制到我的fork上的文件中,并尝试再次合并.然后,git给了我这个错误:
致命:'merge'是不可能的,因为你有未合并的文件.请在工作树中修复它们,然后根据需要使用'git add/rm'标记解析并进行提交,或使用'git commit -a'.
我有什么争论吗?我做了些蠢事吗?"未合并的文件"是什么意思?合并文件的合并不是全部吗?在合并之前,我是否必须提交更改?