我们正在制作一个Angular2应用程序,我们希望能够以某种方式创建一个全局CSS变量(并在分配变量时更改属性的值).
我们使用了Polymer一段时间(现在我们正在切换到Angular2组件)并且我们使用了CSS属性(Polymer有一些polyfill),我们只使用了更新样式Polymer.updateStyles().
有什么方法可以实现类似的功能吗?
编辑:
我们想要类似于Sass color: $g-main-color或CSS自定义属性的东西color: var(--g-main-color),每当我们决定更改属性的值时,例如updateVariable('g-main-color', '#112a4f')它会动态地更新所有值的值.所有这一切都在应用程序运行时.
编辑2:
我想在我的CSS的不同部分(host,child element ...)中使用一些全局CSS变量,并且能够立即更改值 - 所以如果我更改my-color变量,它会在应用程序的任何位置发生变化.
我将使用Sass语法为例:
:host { border: 2px solid $my-color }
:host .some-label { color: $my-color }
Run Code Online (Sandbox Code Playgroud)
可以使用Angular管道之类的东西吗?(但它应该只适用于HTML)
:host { border: 2px solid {{ 'my-color' | cssvariable }} }
:host .some-label { color: {{ 'my-color' | cssvariable }} }
Run Code Online (Sandbox Code Playgroud) 我想在PhpStorm中设置行间距,我在"设置"中找到了它.
但它不能像我想的那样工作.它只是在文本上方添加了一些空间,我希望文本位于行的中间.有什么方法可以做到这一点吗?
文本上方的这个空间是如此丑陋和无用.我附上一张图片,你可以看到问题所在.

我想创建本地模块在我的打字稿(与角2到任何文件)的应用程序,然后简单的参考与进口模块一样myApp/components,myApp/pipes等等,不使用相对路径(../../../MyComponent),因为我有现在做.
例如,Angular 2可以像这样使用.(我还没有找到他们是如何做到的)
import {Component} from 'angular2/core';
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现这种行为?
我做了一些文件,如components.ts,templates.ts等在那里我从当前部分导出文件:
export * from './menu/item';
export * from './menu/logo';
export * from './article/article';
export * from './article/sidebar';
Run Code Online (Sandbox Code Playgroud)
...然后我有一个主文件myApp.ts,我声明模块如下:
declare module 'myapp/components' {
export * from './application/components';
}
declare module 'myapp/templates' {
export * from './application/templates';
}
Run Code Online (Sandbox Code Playgroud)
但是这个文件没有生成任何东西,因此TS构建告诉我错误 ...file_path...(4,9): error TS2305: Module ''myapp/components'' has no exported member 'AlfaBeta'.
顺便说一句.我tsconfig.json看起来像这样:
{
"compilerOptions": {
"target": …Run Code Online (Sandbox Code Playgroud) 在AngularDart 3.0.0中,不推荐使用EventEmitter.那么,如何将子组件中的事件发送给父组件?
在更新之前,它看起来像:
@Component(
selector: 'my-test',
templateUrl: 'test.component.html'
)
class TestComponent {
@Input()
String name = '';
@Output()
EventEmitter<String> onNameChange = new EventEmitter<String>();
}
...
onNameChange.emit('New Name');
...
Run Code Online (Sandbox Code Playgroud)
现在我需要使用Stream和StreamController.有人能举个例子吗?
我有元素,我将它的数据放入对象中。
<my-element data="{{item.content}}"></my-element>
Run Code Online (Sandbox Code Playgroud)
现在我还没有这样做,所以我有所有的data财产声明。
properties: {
data: {
type: Object,
value: {
active: false,
name: "Some name."
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还必须单击应切换布尔值的子元素上的处理程序。
_handleClickBlock: function () {
this.data.active = !this.data.active;
}
Run Code Online (Sandbox Code Playgroud)
我需要[active] attribute在 my-element 上设置data.active值并每次都进行更改,因为我在我的 CSS 样式中使用它,例如:host[active] ....
我怎样才能实现它?我this.setAttribute('active', this.data.active)在事件处理程序中尝试过,但它只更改了一次值;控制台日志正在切换。
编辑:
我试过使用这个代码:
observers: [
'_activeChange(data.active)'
],
_activeChange: function(newValue) {
this.active = newValue;
console.log("change");
},
_handleClickBlock: function () {
console.log("------ click");
this.data.active = !this.data.active;
console.log(this.data.active);
}
Run Code Online (Sandbox Code Playgroud)
但是在我的控制台输出中只有这个,所以没有调用观察者。
------ click
false
------ click …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现构建解决方案,在那里我将获得(之后webdev build)具有抗缓存文件 url 的文件,例如在index.html那里而不是<script defer src="main.dart.js"></script>像这样的东西<script defer src="main.dart.js?v=1.1.0"></script>- 我真的不在乎那是包版本的版本还是一些随机哈希。
我的观点是,如果我确实构建了一个新版本,我需要用户获取这个最新版本,而不是之前缓存的版本(因为相同的 url)。
我想在gulp中进行语音控制/反馈/响应。我在下面写了这样的内容,但是没有用。有人知道如何解决吗?:)
它抛出此错误。
// Compile Sass, autoprefix properties, generate CSS.
gulp.task('sass', function () {
return sass('src/sass/style.scss', {style: 'compressed'})
.pipe(autoprefixer())
.pipe(rename('style.css'))
.pipe(gulp.dest('src/css/'))
.pipe(gutil.beep()) // beep when build is done
})
Run Code Online (Sandbox Code Playgroud) angular ×3
angular-dart ×3
dart ×3
javascript ×2
beep ×1
coding-style ×1
feedback ×1
gulp ×1
phpstorm ×1
polymer ×1
polymer-1.0 ×1
response ×1
typescript ×1