我有一個問題,我似乎無法獲得屬性的值在我使用我的組件的控制器的範圍,所以如果我只是鍵入一個數字在作爲財產我得到預期的結果,但試圖做一些像$ctrl.val
會給我undefined內我的主管,但3
將給出正確的結果。有誰知道爲什麼會發生這種情況?角度1組件綁定不評估父控制器變量
我有一個組件是這樣的:
function RatingController() {
let vm = this
this.$onInit = function() {
console.log("rating: ", vm.rating)
}
}
export default {
bindings: {
rating: '='
},
controller: RatingController,
template: `
<span>{{ $ctrl.rating }}</span
`,
}
然後我初始化這樣說:
<div ng-controller="MainCtrl as main">
<star-rating rating="main.rating"></star-rating>
</div>
上面總會有等級與我的組件未定義但是這樣做會給出預期結果
<div ng-controller="MainCtrl as main">
<star-rating rating="3"></star-rating>
</div>
MainCtrl:
export default function CakeController(requestCakes, $routeParams) {
let vm = this
requestCakes.getOne($routeParams.id).then((res) => {
//compose objects together
vm = Object.assign(vm, res.data)
})
}
你可以顯示'MainCtrl'代碼? –
@BartekFryzowicz我已經將MainCtrl代碼添加到上面。評級屬性已被設置爲來自承諾的回報價值的一部分。現在我認爲問題可能是組件在返回承諾之前被初始化,這將解釋行爲。一旦新數據可用,是否有更新組件的方法? –