如何將Angular表達式的值傳遞給組件的屬性?我從API獲取價值。Angular:評估傳遞到組件屬性的表達式
app.controller.js
$http.get(apiUrl).then(function(resp) {
$scope.name = resp.data.name;
})
...
person.component.js
export const Person = {
templateUrl: 'person.html',
bindings: {
firstName: '@'
},
controller: function() {
console.log(this.firstName);
}
}
app.html
...
<person first-name="name">
對於某些原因,它不在評估name
,它在控制檯中記錄undefined
。
有沒有辦法解決這個問題,所以它在控制器內記錄了Tom
?
任何幫助表示讚賞。提前致謝!
我設置一個的jsfiddle here
我應該解釋說我從API獲取數據,所以它在加載時不易獲得。我建立了一個jsFiddle [這裏](http://jsfiddle.net/d2m32gp4/5/) – realph
@realph如果它只是一個變量而不是表達式,那麼你可以使用單向的<<'綁定。在這種情況下,更新值時會調用$ onChanges。但是,如果它確實是一個表達式,那麼您將無法看到更新的值,除非它位於組件視圖中。這是因爲組件並不是以這種方式輸入的,它們應該是'@'或'<',輸出應該是'&'的意思。另外,在你的jsfiddle中,你有'name =「customerId」'而不是'name =「name」'。 – CShark
@realph我在我的答案中分出了你的jsfiddle,以顯示一種方法來做到這一點。 – CShark