Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你能在Angular 2中声明属性指令的顺序吗_Angular_Angular2 Directives - Fatal编程技术网

你能在Angular 2中声明属性指令的顺序吗

你能在Angular 2中声明属性指令的顺序吗,angular,angular2-directives,Angular,Angular2 Directives,在我尝试使用属性指令在我的应用程序中添加或覆盖不同的选项时,我遇到了一个问题。我看到的问题是,这些指令的初始化顺序与DOM元素中指令的顺序不匹配 所以即使我按顺序申报 他们似乎采取了申请声明中声明的顺序 @NgModule({ imports: [ BrowserModule ], declarations: [ App, OptionsDirective, MoreOptionsDirective, ], bootstrap: [ App ] })

在我尝试使用属性指令在我的应用程序中添加或覆盖不同的选项时,我遇到了一个问题。我看到的问题是,这些指令的初始化顺序与DOM元素中指令的顺序不匹配

所以即使我按顺序申报

他们似乎采取了申请声明中声明的顺序

@NgModule({
  imports: [ BrowserModule ],
  declarations: [ 
    App,
    OptionsDirective,
    MoreOptionsDirective,
  ],
  bootstrap: [ App ]
})
如果我有多个实现需要以不同顺序加载指令,那么这就是一个问题

有没有一种方法可以声明标记本身中指令的顺序

顺序没有明确定义


您需要以某种方式编写代码,以便顺序无关紧要。

对于我的示例,这不起作用,因为选项会覆盖其他选项。有没有办法写一个包装器,或者更明确一点?在angular的以前版本中,我们使用了一个eval表达式,我想避免这种情况。对于您的用例来说,也许管道是一个更好的选项,比如[options]=options | jgMoreOptions | jgoptios我不确定我是否遵循了这个片段,是否有机会得到一个示例plunker?我添加了第二个plunker,以便更清楚地了解我在寻找什么,如果需要我扩展它,请告诉我。管道仅用于操纵值。无法使用管道实现@HostBinding'style.background color'。管道只是一个函数,它接受输入值参数并返回输出值return xxx;。管道返回的内容随后传递给[options]。