2016-09-13 48 views
2

我們Angular2創建指令,並有應接收stringinput財產。問題是,我們無法傳遞一個字符串。Angular2指令 - 字符串問題

如果我們試着這樣做:

<learning-requirements [title]="You should be able to!" [content]="requirements"></learning-requirements> 

它不工作,所以我們必須要做到這一點,那麼它的工作原理:

<learning-requirements [title]="'You should be able to!'" [content]="requirements"></learning-requirements> 

這就是我們的指令:

@Component({ 
    selector: "learning-requirements", 
    directives: [IONIC_DIRECTIVES], 
    templateUrl: "build/pages/learning/components/requirements/requirements.html" 
}) 
export class RequirementsComponent { 
    @Input() public title: string; 
    @Input("content") public items: Array<Requirement>; 
} 

任何想法如何處理字符串沒有顯式使用單引號?

回答

2

每當你已經屬性包與[]方括號它要評估的屬性值(表達)用的上下文(this)零件。

既然你直接傳遞一個值,你可以直接指定title屬性沒有[]括號,這意味着您已內的屬性傳遞的值不會得到對組件的上下文(this)進行評估。

標記

<learning-requirements 
    title="You should be able to!" 
    [content]="requirements"> 
</learning-requirements> 
+1

這就是它,也謝謝你的解釋! – DAG

+0

@dag很高興聽到它幫助,感謝和歡呼,你可以找到相同的[回答這裏](http://stackoverflow.com/a/39393526/2435473) –

2

申報串(類型)變量,並基本上將其用作如下所示,

<learning-requirements [title]="someVar" [content]="requirements"></learning-requirements> 


export class AppComponent{ 
    someVar:string="You should be able to!"; 
} 
+0

好吧,我知道這一點,但有沒有辦法告訴它,以避免單引號字符串中的指令? – DAG

+0

我不明白你想說什麼。這個答案之後你的意思是什麼? – micronyks

+0

如果你不想使用變量,你必須傳遞它與單引號。 – micronyks