Javascript 在AngularJS指令中访问属性
我试图在AngularJS中创建一个覆盖(或模式窗口),到目前为止,我创建了html/css布局,简单地说,它是这样的Javascript 在AngularJS指令中访问属性,javascript,angularjs,Javascript,Angularjs,我试图在AngularJS中创建一个覆盖(或模式窗口),到目前为止,我创建了html/css布局,简单地说,它是这样的 <section class="calendar"> <a open-overlay="overlay-new-calendar">Add New Calendar</a> </section> <section class="overlay overlay-new-calendar"> <
<section class="calendar">
<a open-overlay="overlay-new-calendar">Add New Calendar</a>
</section>
<section class="overlay overlay-new-calendar">
<span class="bg"></span>
<form class="wrap">
<header>
Add a New My Calendar
</header>
<div class="main">
<label>Name<input type="text" required ng-model="newCalendar.calendar_name" /></label>
<label>Color<input type="text" required ng-model="newCalendar.calendar_color" /></label>
</div>
<footer>
<button type="submit">Add</button>
<a close-overlay="overlay-new-calendar">Cancel</a>
</footer>
</form>
</section>
但是我无法让属性返回
覆盖新日历
。还有,如果有人知道的话,我怎么能在没有jquery的情况下做这个节目呢:D非常感谢你,丹尼尔 在不使用jQuery的情况下显示或隐藏是使用属性完成的,例如“ng show=myValue”。因此,您的指令将更改模型的值,例如scope.myValue=true
访问属性应该是attr.openOverlay,因为属性名称在指令中是标准化的。不使用jQuery显示或隐藏是使用属性完成的,例如“ng show=myValue”。因此,您的指令将更改模型的值,例如scope.myValue=true
访问属性应该是attr.openOverlay,因为属性名称在指令中是标准化的。
attr
标准化元素上的属性。属性openOverlay
与data openOverlay
等处理相同,可通过attr.openOverlay
访问
这里有更多的信息:
对于显示和隐藏,您可以使用peterorum的答案
ng show
attr
使元素上的属性正常化。属性openOverlay
与data openOverlay
等处理相同,可通过attr.openOverlay
访问
这里有更多的信息:
对于显示和隐藏,您可以使用peterorum的答案ng show
peterorum是正确的
要详细说明他的答案,您需要:
通过这种方式,您的覆盖正在监视该范围属性,以了解它是否应该可见。单击按钮时,该属性将更改为true,并且模式将可见。并确保在准备再次隐藏表单时设置
isNewCalendarOverlayVisible=false
。非常感谢,这将我带到了一个新的级别:)并确保在准备再次隐藏表单时设置isNewCalendarOverlayVisible=false
。非常感谢,这将我带到了一个新的级别:)
fixEvents.directive('openOverlay', function() {
return function(scope, elem, attr) {
elem.bind('click', function() {
alert(attr.open-overlay);
$('.overlay-new-calendar').show();
});
}
});