【发布时间】:2014-10-08 01:50:45
【问题描述】:
我在一些页面上使用了 ng-include,但是我不得不停止使用 ng-include,因为它破坏了 angular-ui 日期选择器。我打开了这个Github bug。
我想知道是否有其他人在将指令用作 ng-include 的一部分时遇到了与指令不同的问题。
有没有办法让日期选择器作为 ng-include 的一部分按预期工作?
这是一个显示它是如何损坏的 plunker。 http://plnkr.co/edit/AboEJGxAK3Uz76CfpaZ0?p=preview
这是在视图上有效的 html,但在 ng 包含的一部分时无效。
<div class="row">
<div class="col-md-2">
<p class="input-group">
<input type="text" class="form-control" datepicker-popup="yyyy/MM/dd" ng-model="something.dt2" is-open="secondCal"
min-date="minDate" name="secondCal" max-date="'2015-06-22'" datepicker-options="dateOptions"
date-disabled="disabled(date, mode)" ng-required="true" close-text="Close"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default" style="line-height: 1.2em" ng-click="open($event, 'secondCal')">
<i class="ss-icon ss-calendar"></i>
</button>
</span>
</p>
</div>
</div>
这是来自控制器的 JS。
$scope.open = function ($event, elementOpened) {
$event.preventDefault();
$event.stopPropagation();
$scope[elementOpened] = !$scope[elementOpened];
};
还有我做 ng-include 的两种方式
<div ng-include src="'dist/partials/myPartial.html'"></div>
<div ng-include="'dist/partials/myPartial.html'"></div>
更新 我发现这是因为 ng-include 指令为每个包含创建了一个新范围。 This SO post 创建一个新指令,该指令在不创建新范围的情况下执行包含。但是,似乎“应该”有一种方法可以在不使用其他包含的情况下修复它。
【问题讨论】:
标签: javascript angularjs angular-ui angular-ui-bootstrap