我已經將問題指向導出的函數。提前編譯靜態分析錯誤
animations.ts:
export function slideInRight(triggerName = 'slideInRight', unactivatedState = 'initial', activatedState = 'state-0', duration = '1s') {
return trigger(triggerName, [
state(unactivatedState, style({
transform: 'translateX(-100%)'
})),
state(activatedState, style({
transform: 'translateX(0)'
})),
transition(`${unactivatedState} => ${activatedState}`, animate(`${duration} ease-in-out`)),
transition(`${activatedState} => ${unactivatedState}`, animate(`${duration} ease-in-out`))
]);
}
home.component.ts:
import { slideInRight } from 'animations'
@Component({
// ...
animations: [slideInRight('param1', 'param2')]
})
export class HomeComponent {}
試圖做AOT編譯時,我得到了以下錯誤:錯誤
遇到錯誤靜態解析符號值。不支持表達式形式(原始.ts文件中的位置24:16),解析path/to/project/angular/animations.ts中的符號slideInLeft,解析路徑中的HomeComponent/to/project/angular/app/pages/home /home.component.ts,解決路徑/要/項目符號HomeComponent /角/應用/網頁/首頁/ home.component.ts
如果我註釋掉這個動畫屬性的裝飾呼叫時,錯誤消失。我在這裏做錯了什麼?
你是什麼意思完全獨立? – Jeff
我用實際的方法更新了我的問題。你能指出什麼是問題嗎? – Jeff
當我說'完全獨立'時,我的意思是我一直在調用AOT編譯器在抱怨時編寫的輔助函數(fadeIn和fadeOut)。我重構了所以我不依賴於這些幫助函數。至於你的第二個問題,我現在還不確定。它看起來像AOT編譯器抱怨'slideInLeft':「不支持表達式形式(在原始.ts文件中的位置24:16),解析符號slideInLeft。'」但我沒有看到slideInLeft在您發佈的代碼中的任何地方。 – user3821892