我有一个非常简化的版本,我正在做的事情可以解决问题.
我有一个简单的directive.每当您单击一个元素时,它会添加另一个元素.但是,需要首先编译它才能正确呈现它.
我的研究引导我$compile.但是所有的例子都使用了一个复杂的结构,我真的不知道如何在这里应用.
小提琴在这里:http://jsfiddle.net/paulocoelho/fBjbP/1/
JS就在这里:
var module = angular.module('testApp', [])
.directive('test', function () {
return {
restrict: 'E',
template: '<p>{{text}}</p>',
scope: {
text: '@text'
},
link:function(scope,element){
$( element ).click(function(){
// TODO: This does not do what it's supposed to :(
$(this).parent().append("<test text='n'></test>");
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
Josh David Miller的解决方案:http: //jsfiddle.net/paulocoelho/fBjbP/2/
我目前在动态添加内容后面临验证问题.
我有一个强烈键入模型(Order)的视图.此订单可以包含许多项目.该模型看起来如下所示:
public class Order
{
[Key]
[HiddenInput]
public int id { get; set; }
[Display(Name = "Order Number")]
public string number { get; set; }
[Display(Name = "Order Date")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime date { get; set; }
[Required(ErrorMessage = "Beneficiary is required.")]
[Display(Name = "Beneficiary")]
public int beneficiary_id { get; set; }
[Display(Name = "Beneficiary")]
public Beneficiary beneficiary { get; set; }
[Display(Name = "Items")]
public List<Item> items { get; set; …Run Code Online (Sandbox Code Playgroud) asp.net-mvc partial-views dynamically-generated razor unobtrusive-validation
有很多问题似乎都在问这个问题,但最终他们想要的只是附加.click事件而不是.each,因此所有人都普遍接受的答案包括$("body").on("click", ".selector", function(){});,这绝对不是我想要的.
我有一些生成的输入,我需要同时更改每个输入的值.通常我会$(".inputs").each(function(){$(this).val("new-value")};或那些沿着这些线,但是,我不能因为动态方面.
那你怎么办$("body").on("each", ".inputs", function(){});?
我正在生成一个表达式树,它将属性从源对象映射到目标对象,然后编译为a Func<TSource, TDestination, TDestination>并执行.
这是结果的调试视图LambdaExpression:
.Lambda #Lambda1<System.Func`3[MemberMapper.Benchmarks.Program+ComplexSourceType,MemberMapper.Benchmarks.Program+ComplexDestinationType,MemberMapper.Benchmarks.Program+ComplexDestinationType]>(
MemberMapper.Benchmarks.Program+ComplexSourceType $right,
MemberMapper.Benchmarks.Program+ComplexDestinationType $left) {
.Block(
MemberMapper.Benchmarks.Program+NestedSourceType $Complex$955332131,
MemberMapper.Benchmarks.Program+NestedDestinationType $Complex$2105709326) {
$left.ID = $right.ID;
$Complex$955332131 = $right.Complex;
$Complex$2105709326 = .New MemberMapper.Benchmarks.Program+NestedDestinationType();
$Complex$2105709326.ID = $Complex$955332131.ID;
$Complex$2105709326.Name = $Complex$955332131.Name;
$left.Complex = $Complex$2105709326;
$left
}
}
Run Code Online (Sandbox Code Playgroud)
清理它将是:
(left, right) =>
{
left.ID = right.ID;
var complexSource = right.Complex;
var complexDestination = new NestedDestinationType();
complexDestination.ID = complexSource.ID;
complexDestination.Name = complexSource.Name;
left.Complex = complexDestination;
return left;
}
Run Code Online (Sandbox Code Playgroud)
这是映射这些类型的属性的代码:
public class NestedSourceType
{
public int ID …Run Code Online (Sandbox Code Playgroud) 我有一个select字段,动态填充ajax调用,只返回所有HTML选择选项.这是PHP的一部分,它只是回显select标签并动态填充每个选项/值.
echo "<select name='player1' class='affector'>";
echo "<option value='' selected>--".sizeof($start)." PLAYERS LOADED--</option>";
foreach ($start as $value) {
echo "<option value='".$value."'>".$value."</option>";
}
echo "</select>";
}
Run Code Online (Sandbox Code Playgroud)
填充此列表后,我正在尝试调用更改事件,以便每当在SELECT列表中或在具有相同类的文本字段中更改默认选项时,它将禁用在表单的另一部分中设置的单选按钮.(你可以看到最初的问题,我问来获取工作的功能这一部分在这里)
$('.affector').change(function(){
$(this).parents('tr').find('input:radio').attr('disabled', false);
});
Run Code Online (Sandbox Code Playgroud)
出于某种原因,即使我给select字段指定了正确的类名(affector),当我在字段中选择不同的选项时,表单的其他部分也不会禁用.具有相同类的静态文本字段工作正常.我很难过.
有任何想法吗?
我正在寻找一种使用JavaScript在现有PDF上添加文本的方法.我将其设想为用户点击按钮下载PDF并接收带有此原始PDF的文件以及在页面上写入的其他文本.
这有可能吗?
使用现有PDF来保留原始设计非常重要,PDF还包括以不同字体排版的文本和各种unicode字形.
将此文本从网页生成到PDF上也很重要,因为生成的每个文本都会略有不同,从而为最终用户创建唯一的PDF.
我一直在网上研究这个主题并找到了jsPDF库,但这似乎只生成PDF,而不是在现有PDF上编写,而我在PDF上需要的内容太复杂了,无法使用jsPDF生成所有内容.如果我不需要,我不想将现有的PDF用作背景图像.
我还发现了一些像PDFKit这样的后端库,但是如果可能的话,我希望避免使用后端库 - 而且它似乎也不会写入现有的PDF.
我在网上看到了一些关于文本字段的东西,但很难理解这是否是一条可行的路径 - 是否可以在PDF中添加文本字段,然后在用户之前从网页插入文本到这些字段中下载吗?
非常感谢你.
我有一个以编程方式生成的图像,我想通过ACTION_SEND和EXTRA_STREAM方法作为附件发送.
但是我该怎么做?
我的第一次尝试(写入我的context.getCacheDir()基础文件路径)似乎在Gmail预览中有效(没有图像预览,但附件文件名和图标可见),但附件从未到达收件人端.我想这与生成的文件的权限有关,但如何避免这种情况?我是否需要在这些生成的文件上设置更宽松的设置(以便Gmail活动可以访问)?应用程序的缓存文件夹甚至可以吗?
是否有另一个文件位置更适合写我的文件?我考虑了下载文件夹,但认为这对于只有在通过电子邮件发送之前才需要存在的东西才是一个尴尬的位置.
我甚至尝试过纯粹在data:image/png;base64,ABCD...样式URI中编码我的图像.这也出现在Gmail预览中(附件图标,但没有文件名),但未导致收件人端附件.
有没有人能够通过任何方式将一次性生成的图像附加到电子邮件意图?我可能忽略了哪些选择?
处理用户自定义样式的最佳方法是什么?正如我正在寻找的结果的一个例子,这就足够了:
body {
color: {{ user.profile.text_color }};
}
Run Code Online (Sandbox Code Playgroud)
但是,将CSS作为视图提供似乎会导致不断请求的文件中的大量开销,因此这可能不是一个好的解决方案.
用户无权访问CSS文件,我们必须假设他们没有Web开发知识.
我正在创建一个项目,当用户点击一个按钮时,动态插入一个带按钮的整个div,在该div内部有一个按钮,当用户点击它时,它会执行其他操作,例如提醒某些内容.
问题是当我在动态添加的div中按下该按钮时,没有任何反应.事件根本不会发生.
我试图在HTML中添加该div并再次尝试,该事件有效.所以我想这是因为div是动态添加的.
添加的div有一个类mainTaskWrapper,按钮有一个类checkButton.使用下面.on()的script.js文件末尾附加事件.
这是我的代码:
helper_main_task.js :(这是添加div的对象,你不必阅读它,因为我认为这是关于动态添加div的所有内容,但我会把它放在你需要的情况下)
var MainUtil = {
tasksArr : [],
catArr : ["all"],
add : function(){
var MTLabel = $("#mainTaskInput").val(), //task label
MTCategory = $("#mainCatInput").val(), //task category
MTPriority = $("#prioritySlider").slider("value"), //task priority
MTContents = $('<div class="wholeTask">\
<div class="mainTaskWrapper clearfix">\
<div class="mainMarker"></div>\
<label class="mainTaskLabel"></label>\
<div class="holder"></div>\
<div class="subTrigger"></div>\
<div class="checkButton"></div>\
<div class="optTrigger"></div>\
<div class="addSubButton"></div>\
<div class="mainOptions">\
<ul>\
<li id="mainInfo">Details</li>\
<li id="mainEdit">Edit</li>\
<li id="mainDelete">Delete</li>\
</ul>\
</div>\
</div>\
</div>');
this.tasksArr.push(MTLabel); …Run Code Online (Sandbox Code Playgroud) 我的这个问题有很多问题与几乎相似的标题,但你知道我没有找到答案.
我的简单问题是:我有按钮,当我点击它时,javascript会创建模态窗口
<div class="aui-dialog">
html here...
<button id="closeButton">Close</button>
</div>
Run Code Online (Sandbox Code Playgroud)
<body>标签后面.
我可以使用jQuery live绑定关闭按钮的click事件没有问题:
$("#closeButton").live("click", function() {
alert("asdf"); // it calls
$("body").find(".aui-dialog").remove();
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,我无法通过其类名选择动态创建的模态窗口div.这样我就可以调用jQuery .remove()方法来进行关闭操作.现在我知道,我必须以另一种方式处理动态元素.
有什么办法?
编辑:
我认为重要的是要提到这一点:
我不自己创建模态窗口,我使用liferay门户网站.它有内置的javascript框架AUI(YUI),可以创建该模态窗口.我可以在它的视图中创建它内部的关闭按钮.
编辑2:
模态窗口div类属性值为:" aui-component aui-panel aui-dialog aui-widget-located "
jquery ×4
javascript ×3
android ×1
angularjs ×1
asp.net-mvc ×1
attachment ×1
c# ×1
css ×1
django ×1
dynamic ×1
each ×1
email ×1
events ×1
html ×1
image ×1
onchange ×1
pdf ×1
performance ×1
razor ×1
select ×1