我在重复一遍.如何在循环中有条件地添加一些html.到目前为止,我有以下代码:
<div ng-show="showCondition">
<div>
...
<input name="bla[{{obj.value}}].Id type="Text" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这当然隐藏了HTML.但我仍然最终将输入内容发送到服务器以进行迭代,我不希望输入存在.
我不能使用ng-include,因为html在循环中位于同一个文件中.
我怎么才能说,"如果是真的,在循环的迭代过程中渲染下面的html"?
谢谢
我目前有一个项目,我将客户端的东西转换为Angular,因为我喜欢它的绑定方面.目前,我正在服务器上进行表单验证.经过多年在客户端和服务器上的操作,我发现我的偏好是通过对服务器的AJAX请求来实现.因此,设计中没有客户端表单验证.
它是一种享受,我可以使用jQuery来点亮表单中的任何验证错误,这些错误在ModelState中以json的形式发送回客户端.
现在是Angular.我想保留这个实现,但我觉得我正在反对这项技术.Angular似乎坚持客户端验证.
在收到带有验证错误的AJAX响应时,是否有办法告诉Angular验证机制什么是无效的,所以我仍然只能使用服务器端验证?
编辑 我应该包含一个链接到我基于我的实现的帖子 - http://timgthomas.com/2013/09/simplify-client-side-validation-by-adding-a-server/正如你所看到的,它不使用Angular.最好采用它的服务器端方面并使其与AngularJs一起使用
谢谢
我一直在使用 MVVM Light Toolkit 来帮助学习 MVVM 模式。但是,我一直无法解决控件场景中的用户控件问题。
例如,在时间表应用程序中,假设我们有一个名为 NewUnitOfWork 的控件。首次加载时,带有项目列表的 ListBox 的面板将作为 NewUnitOfWork 的内容加载。用户点击一个。一个新面板与一个包含该项目可能任务的 ListBox 交换。选择一个任务并加载一个新面板,该面板将包含用于为所选项目的所选任务输入数据的控件。
因此,我们将一个用户控件中的选定项目传递给其他两个用户控件,这些用户控件又作为 NewUnitOfWork 控件(或窗口)的内容交换。
如果每个控件都有自己的 ViewModel,我们需要将选定的值从一个 ViewModel 传递到下一个等等。
我使用全局变量(通过“服务”)让它在单用户情况下工作。但是,它存在并发问题,这不是一个好的解决方案。这是低于标准的。
我在这个论坛上多次看到建议将 ViewModel 作为另一个 ViewModel 的成员。虽然这解决了手头的问题,但我认为这违反了 MVVM 模式。另一个 ViewModel 不是 ViewModel 应该直接拥有的 UI 相关功能。
所以。有没有人找到一种干净的符合 MVVM 的方法来做这种事情?
干杯
我有一个ViewModel,它包含以下结构:
public struct PricesAndDiscounts
{
public decimal FlatOff;
public decimal UnitPrice;
public decimal TotalDiscount;
public decimal TotalOptions;
public decimal TotalOrderPrice;
}
Run Code Online (Sandbox Code Playgroud)
ViewModel处于层次结构中,因此存在类型为PricesAndDiscounts的属性,该属性是DisplayRowPriceViewModel的成员,DisplayRowPriceViewModel是ManageOrderEditModel的成员:
-ManageOrderEditModel --DisplayRowPriceViewModel
.
请求的"形状"完全按照我的期望和期望(参见表单项的Fiddler截图):

但是,在服务器上,默认的模型绑定器将结构实例化为每个成员的零.ViewModel中的其他所有内容都是由ModelBinder创建的,没有任何问题.
我是否需要为自定义结构创建自定义ModelBinder?
编辑 - 添加更多详细信息
签名是:
public ActionResult ManageOrder([FromBody]ManageOrderEditModel model)
Run Code Online (Sandbox Code Playgroud)
我在没有FromBody属性的情况下尝试过它.此外,PriceAndDiscounts是一个结构的事实并不是问题.我把它改成了一个类,所有成员都以零的形式出现,而不是你从表单中看到的Fiddler中的值.
ManageOrderEditModel
public class ManageOrderEditModel
{
public DisplayOptionsInDropDownViewModel DisplayOptionsInDropDownViewModel { get; set; }
public DisplayRowPriceViewModel DisplayRowPriceViewModel { get; set; }
public int ID { get; set; }
public int RegType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
DisplayRowPriceViewModel
public class DisplayRowPriceViewModel
{
public Discount Discount { …Run Code Online (Sandbox Code Playgroud)