接收错误无法在PollListCtrl.runQuery中读取未定义的属性“类型”。 我不确定为什么会出现这种情况。我控制台记录了profile-polls.controller.js,其中创建了listConfig以确保这里有一个对象。回复是
{type: "all", filters: {pollsCreated: Array(3)}}
但是当我尝试将它传递给profile-polls.html中的poll-list组件时,它会出现未定义。以下是相关文件的要点。谁能告诉我为什么这不正确传递?
https://gist.github.com/RawleJuglal/fa668a60e88b6f7a95b456858cf20597
答案 0 :(得分:1)
我认为你需要为你的组件定义观察者。在开始时listConfig
未定义,只有在一些延迟(下一个摘要周期)之后才获得值。所以我们创建观察者并在if
语句后取消它。
app.component('pollList', {
bindings: {
listConfig: '='
},
templateUrl: 'poll-list.html',
controllerAs: 'vm',
controller: PollListCtrl
});
function PollListCtrl($scope) {
var vm = this;
function run(){
console.log(vm.listConfig);
}
var cancelWatch = $scope.$watch(function () {
return vm.listConfig;
},
function (newVal, oldVal) {
if (newVal !== undefined){
run();
cancelWatch();
}
});
}
答案 1 :(得分:0)
您可以使用ngOnInit()生命周期钩子来访问“bindings”值而不是构造函数。
ngOnInit(){
$ ctrl.listConfig = {type:'all'};
$ ctrl.limit = 5;
}