浏览器和节点环境中都没有Angular

时间:2014-03-03 19:25:16

标签: node.js angularjs apple-tv service-provider

我正试图扯出一个疯狂的伎俩,我有点卡住了。

我需要做的是在AppleTV上使用angular。在没有DOM的东西上使用角度的目的是什么?我正在尝试重用为另一个应用程序编写的一堆角度服务,所以我需要使用serviceProvider部分角度及其依赖注入机制。我可能会使用node-di作为依赖,可能仍然无法解决serviceProvider部分。

通常我需要做的是加载angular.js代码(可能通过XHR)并评估它。 目前我无法做到这一点,angular对DOM对象有很多依赖。 我尝试使用jsdom加载角度,它在节点上工作,但在AppleTV上没有。 Jsdom本身也与节点耦合。

1 个答案:

答案 0 :(得分:1)

我能够通过模拟所有DOM依赖项来评估它

  Location = ->
  Location.prototype.href = ""
  Location.prototype.pathname = ""

  Window = ->
  Window.prototype.location = new Location()
  Window.prototype.addEventListener =  ->
  window = new (Window)
  global.window = window

  Element = ->
  Element.prototype.setAttribute = ->
  Element.prototype.pathname = ""
  Element.prototype.addEventListener = ->
  Element.prototype.find =-> new Element()

  Document = ->
  Document.prototype.createElement = -> new Element
  Document.prototype.addEventListener = ->
  document = new Document()
  global.document = document

  window.document = document
  Navigator = ->
  navigator = new Navigator()
  global.navigator = navigator