0

我又需要你的帮助了!

我正在努力让一个角度组件(ui-bootstrap-datetimepicker)加载到一个在我的角度代码之外加载的检票口组件中。

这是目前的样子

来自 Wicket 的 HTML

<span class="dropdown">
  <a class="dropdown-toggle" role="button" data-toggle="dropdown" data-target="#" href="">
    <div class="input-append">
      <input type="text" placeholder="Date/Time Value" class="input-large" data-ng-model="data.storedValue" required date-time-input="MM/DD/YYYY hh:mm a">
      <button type="button" class="btn"><i class="icon-calendar"></i></button>
    </div>
  </a>
  <ul class="dropdown-menu">
    <datetimepicker data-ng-model="data.storedValue" data-datetimepicker-config="{ dropdownSelector: '.dropdown-toggle', minView: 'minute', minuteStep: 1 }"></datetimepicker>
  </ul>
</span>

运行以编译角度的Javascript

var $injector = angular.injector(['app', 'ui.bootstrap']);
var selector = this.selector;
$injector.invoke(function($rootScope, $compile) {
    var element = $compile(angular.element(selector))($rootScope);
    element.scope().$apply();
    angular.element(selector).scope().$apply();
});

app是我的角度应用程序模块。

这有效地呈现组件并出现下拉菜单,但未填充日期。如图所示

我尝试了其他几种配置,但要么让事情变得更糟,要么根本没有帮助。问问题,我会尽我所能回答!

编辑 另外,我的控制台中出现了一堆错误,这可能会有所帮助:P

  • 错误:未知提供者:$rootElementProvider <- $rootElement <- $location <- dropdownToggleDirective
  • 循环依赖:$animator <- ngRepeatDirective
  • 循环依赖:ngShowDirective
  • 错误:语法错误:标记 ',' 不是从 [, $event)] 开始的表达式 [changeView('', , $event)] 第 16 列的主表达式。
4

1 回答 1

0

当然,在我发布这个之后,我就知道我做错了什么......

javascript部分应该看起来像......

var $injector = angular.element(document).injector();
var selector = this.selector;
$injector.invoke(function($rootScope, $compile) {
    var element = $compile(angular.element(selector))($rootScope);
    element.scope().$apply();
    angular.element(selector).scope().$apply();
});

我需要从我的主应用程序中获取注入器,而不是构建一个新的。一旦我这样做了,它就能够构建日历。它导致了大量其他问题,但至少组件正在渲染!

于 2013-10-18T22:19:54.610 回答