Angular 例外:错误:未捕获(承诺中):预期为';风格';是字符串数组
我正在研究angular2“2.0.0-rc.1” 但是zoneJS给出了以下错误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.
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;
}
`]
})
有关更多详细信息,请参阅此链接:
@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']
})