【问题标题】:How to get MaterialDropdownSelectSimpleDemoComponent from AngularDart Gallery to work in a simple AngularDart Project如何从 AngularDart 库中获取 MaterialDropdownSelectSimpleDemoComponent 以在简单的 AngularDart 项目中工作
【发布时间】:2019-08-26 09:13:03
【问题描述】:

我是 AngularDart 的新手,正在尝试将下拉选择器添加到我的项目中。我正在查看 AngularDart 库中的示例,具体来说:https://dart-lang.github.io/angular_components/#/material_dropdown_select

我已经回到“基础”并使用 IntelliJ IDEA > New Project > Dart > AngularDart Web App 创建了一个新项目。 “我的第一个 AngularDart 应用程序”(一个 todo_list 应用程序)构建并运行良好。

然后添加一个下拉选择器,在尝试了各种方法之后,我将 AngularDart Gallery 中的演示代码添加到了这个项目中:

  • 在上面的 URL 上,点击 MaterialDropdownSelectSimpleDemoComponent 旁边的“源代码”
  • 在存储库中上一层并将 material_dropdown_select_simple_demo(.dart、.html 和 .scss)的内容复制到我的项目中
  • [问题 1] 顺便说一句,我实际上提升了多个级别,直到可以克隆 dart-lang/angular_components。但是我不能把它作为一个项目来构建,这样我就可以“现场”玩它,这可能会有所帮助。我在这里遗漏了什么明显的东西吗??
  • 所以我的项目中有一个 material_dropdown_select_simple_component.dart、.html、.scss 并更新了 @Component 选择器:templateUrl: 和 stryleUrls: 以匹配我的组件名称
  • 然后在项目的主组件(app_component.html)中添加:
<material-dropdown-select-simple-component></material-dropdown-select-simple-component>
  • 并将 MaterialDropdownSelectSimpleDemoComponent 类名添加到指令中:并添加相关的导入语句
  • 添加到 pubspec.yaml 中的依赖项(由于使用 scss)
sass_builder: ^2.0.0 

然后我尝试运行它并得到:

[SEVERE] build_web_compilers|entrypoint on web/main.dart:
Unable to find modules for some sources, this is usually the result of either a
bad import, a missing dependency in a package (or possibly a dev_dependency
needs to move to a real dependency), or a build failure (if importing a
generated file).

Please check the following imports:

`import 'package:DropDownSelectv4/src/todo_list/material_dropdown_select_simple_component.scss.css.shim.dart' as import0;` from DropDownSelectv4|lib/src/todo_list/material_dropdown_select_simple_component.template.dart at 10:1

[问题2] 所以我在一个template.dart文件中有一个行号,我找不到这个文件。

[问题3] 在查看代码时,我注意到在 material_drop_select_simple_component.scss 下有红色的曲线:

@import 'package:angular_components/css/material/material';
@import 'package:angular_components/css/material/shadow';

也许我的 pubspec.yaml 文件中缺少一个依赖项,但我如何确定是什么? 我目前有:

dependencies:
  angular: ^5.2.0
  angular_components: ^0.11.0
  sass_builder: ^2.0.0

dev_dependencies:
  angular_test: ^2.2.0
  build_runner: ^1.1.2
  build_test: ^0.10.3
  build_web_compilers: ^1.0.0
  pedantic: ^1.0.0
  test: ^1.5.1

我认为我在这里遗漏了一些基本的东西。任何帮助将不胜感激。

【问题讨论】:

    标签: angular-material angular-dart


    【解决方案1】:

    希望以下两个链接对你有所帮助。

    https://stackoverflow.com/questions/44230452/how-to-use-material-dropdown-select-in-angular-dart
    https://dart-lang.github.io/angular_components/#/material_dropdown_select
    

    【讨论】:

    • 感谢您的帮助 - 但最终它被证明是 AngularDart 库中示例中的一个错误。
    【解决方案2】:

    [问题1]顺便说一句,我实际上升了多个级别,直到我 可以克隆 dart-lang/angular_components。但我无法做到 构建为一个项目,以便我可以“现场”使用它,这可能会有所帮助。 我在这里遗漏了什么明显的东西吗??

    您可以在本地构建和试验的唯一完全成熟的包称为 angular_components_example。它是构建示例库的包。 https://github.com/dart-lang/angular_components/tree/master/examples/angular_components_example

    [问题 2] 所以我在 template.dart 文件中有一个行号,我 找不到这个文件。

    在构建过程中生成的文件,如 .template.dart(通过 angular)或 .css(通过 sass_builder)将位于包根目录下名为 .dart_tool/build/generated/&lt;your package name&gt; 的隐藏目录中

    [问题 3] 在查看代码时,我注意到在 material_drop_select_simple_component.scss 有红色曲线 下...

    我认为红色曲线实际上是红鲱鱼,你不应该担心这些进口。它们来自我们创建的一个小解决方法,允许您在了解 dart 包系统的情况下导入 sass 文件,并且没有与 IDE 的任何集成来支持导入。

    我认为真正的问题是material_dropdown_select_simple_component.dart 文件中的 sass 文件的名称。将行更改为:

    styleUrls: [material_dropdown_select_simple_component.css]
    

    默认情况下,sass_builder 包会将包中的.scss 文件编译为.css 文件。 (我们只是在 angular_components 包中使用不同的约定,因此当您复制文件时,它可能包含 .scss.css

    【讨论】:

    • 谢谢你——这让我进入了下一步。我可以构建角度画廊,除了指向 Material Dropdown Select 的链接之外,它似乎可以正常工作。在浏览器控制台中,我找到:2:8080/packages/$sdk/dev_compiler/amd/dart_sdk.js:18676 SEVERE: OverlayService must be a singleton: Check that there is no nested overlayBindings or popupBindings :8080/packages/$sdk/dev_compiler/amd/dart_sdk.js:100398 EXCEPTION: Expected a value of type '(dynamic) =&gt; String', but got one of type '(HasUIDisplayName) =&gt; String'。任何进一步的帮助将不胜感激。我在我的项目中遇到了类似的错误。
    • 很抱歉。示例中存在一个错误,现已修复。 github.com/dart-lang/angular_components/commit/… master 分支已经更新,所以如果你同步它应该可以工作。
    • 感谢您解决了它!我无法重建 angular_components_example,因为它现在需要:SDK 版本 >=2.2.1-dev.3.0。 (我尝试升级但失败了!)。但是,我能够在我的项目中应用对 material_dropdown_select_full_demo.dart 和 .html 所做的更改,一切看起来都很好。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多