Angular 例外:错误:未捕获(承诺中):预期为';风格';是字符串数组

Angular 例外:错误:未捕获(承诺中):预期为';风格';是字符串数组,angular,zone,zonejs,Angular,Zone,Zonejs,我正在研究angular2“2.0.0-rc.1” 但是zoneJS给出了以下错误 Error: Uncaught (in promise): Expected 'styles' to be an array of strings. at resolvePromise (zone.js:538) at zone.js:515 at ZoneDelegate.invoke (zone.js:323) at Object.NgZoneImpl.inner.inner.

我正在研究angular2“2.0.0-rc.1” 但是zoneJS给出了以下错误

Error: Uncaught (in promise): Expected 'styles' to be an array of strings.
    at resolvePromise (zone.js:538)
    at zone.js:515
    at ZoneDelegate.invoke (zone.js:323)
    at Object.NgZoneImpl.inner.inner.fork.onInvoke (eval at <anonymous> (vendor.js:335), <anonymous>:45:41)
    at ZoneDelegate.invoke (zone.js:322)
    at Zone.run (zone.js:216)
    at zone.js:571
    at ZoneDelegate.invokeTask (zone.js:356)
    at Object.NgZoneImpl.inner.inner.fork.onInvokeTask (eval at <anonymous> (vendor.js:335), <anonymous>:36:41)
    at ZoneDelegate.invokeTask (zone.js:355)

我认为您在组件中对
style
属性进行了错误的配置。这应该是这样的:

@Component({
  (...)
  styles: [`
    .card {
      height: 70px;
      width: 100px;
    }
  `]
})
有关更多详细信息,请参阅此链接:

编辑

如果要包含CSS文件,请使用以下命令:

@Component({
  (...)
  styleUrls: ['css/style.css']
})

错误很明显。定义组件时,
styles
属性应该是数组而不是字符串

见文件:


编辑:如果要使用.css文件,应使用
样式URL
属性并指向文件。

如果没有为css文件定义加载程序,则会出现此错误。
检查是否在网页包配置中设置了模块加载器,如下所示:

装载机:[
{
测试:/\.css$/,,
加载器:“原始”
}
// ...
]
如果没有css文件的加载程序,Webpack将不会选择文件,并将引发此错误。
如果尚未包含在依赖项中,则需要使用
npm安装--save dev raw loader
将原始加载程序添加到开发依赖项中。 如果您使用静态css文件并且不需要任何处理,那么您当然可以使用
样式URL

要使用sass,您需要使用这种方式加载样式,并且可以使用加载程序
raw!sass
对于
/\.scss$/

请尝试以下操作: let styles=String(require('./dashboard.css')

这对我有用。
因为样式需要字符串[],所以将样式解析为string()。

你能展示一下代码吗?但我也在做同样的事情。不,我的朋友,我们可以使用样式中的变量来分配它。你可以做你想做的事,但是
样式URL
是正确的方法。是的,您是正在工作的正确朋友,但为什么不这样做。
require
加载模块或JSON文件。这不是CSS文件的情况。它不会得到一个字符串,而是一个对象……在您的例子中,我认为
styleUrls
属性就是您要寻找的。。。我更新了我的答案。
@Component({
  (...)
  styleUrls: ['css/style.css']
})