我对npm和Angular2都很陌生。我已经按照Angular2的教程创建了一个初始应用程序,并且已经有了一些实质性的知识。
https://angular.io/docs/ts/latest/tutorial/

我需要在我的应用程序中添加拖放功能,并相信我应该使用Angular本身而不是jquery-ui。我找到了这个插件:

https://github.com/valor-software/ng2-dragula

我已按照自述文件中的说明进行操作,并且似乎已安装。它位于node_modules和ng2-dragula下:“” ^ 1.0.3已添加到我的依赖项中。然后,我运行npm install并开始。

仍然,当我尝试使用自述文件中指定的指令和提供程序时,未返回(在我的IDE和控制台中)。

@Component({
  selector: 'sprint-tasks',
  inputs: ['sprintTask'],
  templateUrl: './views/sprint-tasks.html',
  directives: [Dragula],
  providers: [SprintTaskService],
  viewProviders: [DragulaService]
})

现在,我猜测我需要(1)在文件顶部导入组件和/或(2)在索引的“加载库”部分中列出该库。但是文档中没有提到这一点,而且我一直无法找出正确的端点。好像文档认为这些指令现在应该在npm安装之后是系统的“先天”,但是我不知道那是不是一回事:)

我猜/希望对习惯于导入第三方组件的任何人来说这都是显而易见的。感谢您的任何帮助,您可以提供。

最佳答案

此问题的常见原因是tsconfig.json文件上的标志。为了正确地引用这些文件,您应该使用

"moduleResolution": "node"

您还需要使用诸如Systemjs之类的模块加载器库或类似的库来导入这些库。

Dragula库应该附带一个捆绑软件,您可以将其导入模块加载器中。对于system,这应该像简单地将捆绑包包含在index.html文件中一样简单。
<script src="node_modules/dragula/path/to/bundle.js"></script>

或任何称为文件的文件。

如果库中不包含捆绑软件,或者捆绑软件对您不起作用,则可以在系统配置中对此进行批注,然后系统将为您执行此操作。
System.config({
  map:{
    'dragula': 'node_modules/dragula'
  }
});

与往常一样,这可能需要针对您的确切需求进行一些调整,但应该可以使您与自己保持联系。需要更多信息来进一步调整针对您特定情况的答案。

关于angular - 如何为Angular2安装组件包装器(特别是Dragula),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35120239/

10-13 06:32