【发布时间】:2017-04-15 03:51:46
【问题描述】:
我正在尝试将数组从父控制器传递到子组件。
<plant-select plants="{{head.permittedPlants}}"></plant-select>
head.permittedPlants 是一个数组
我收到以下错误:
“错误:[$parse:syntax] 语法错误:从 [{head.permittedPlants}}] 开始的表达式 [{{head.permittedPlants}}] 的第 2 列中的标记 '{' 无效键。”
我只能传入一个字符串吗?
我的组件如下所示:
let plantSelectComponent = {
bindings:{
plants:'<'
},
template:require('./plantSelect.template.html'),
controller:plantSelectController
}
下面父级的控制器。 “permittedPlantsResolve”是来自 UI-Router 的解析:
function headerCtrl($scope, $ngRedux, $mdSidenav, $log, permittedPlantsResolve){
let ctrl = this;
ctrl.permittedPlants = permittedPlantsResolve;
ctrl.consoleState = function(){
console.log($ngRedux.getState());
}
ctrl.menuToggle = function(){
$mdSidenav('left').toggle()
}
}
export default headerCtrl;
如果我将绑定更改为“@”,它通过字符串没有问题。数组有可能吗?我必须传递一个字符串吗?
已解决:在组件的控制器中,我在 postLink 上分配了 $attrs.plants,分配给它 onInit 解决了问题!
【问题讨论】:
-
包含
的模板文件不是组件,只是附加了控制器的 html。它也需要是一个组件吗?
标签: angularjs arrays syntax-error components