我正在尝试使用Angular中的指令实现2级层次结构。第一个范围venture
被传递给JSON数组。在每个企业中都有一系列职位。理想情况下,第二个范围将获取此位置对象并将其填入。
app.directive('venture',function(){
return {
restrict: "E",
template: '<div><div ng-show="!ventureshow">{{details.venture_name}}'
+'<positions data="{{details.positions}}" ></positions>'
+'...',
scope: {
details:'='
},
replace: true,
link:function($scope, element, attrs){
}
}
});
app.directive('positions',function(){
return {
restrict: "E",
template:'d<ul ng-repeat="position in details">{{position}}<li>{{position.position_name}}:{{position.position_description}}</li></ul>',
scope:{
data:'='
}
}
})
但是第二个对象上的等号(=)会导致错误$parse:syntax
。似乎无法弄清楚是什么导致了这个问题
答案 0 :(得分:1)
双向绑定需要绑定到可以分配的属性。您通过执行无法分配的data="{{details.positions}}"
来提供插值(除非您在范围上的属性与插值结果的属性相同)。您必须获得一个不可分配的例外。当你进行双向绑定时,从绑定中删除{{
插值。
即
template: '<div><div ng-show="!ventureshow">{{details.venture_name}}'
+'<positions data="details.positions" ></positions>'
答案 1 :(得分:0)
如果你使用2种方式绑定方式(=),你必须传递变量,而不是变量的值,因为andgular指令需要变量(地点)来改变某些东西,写点东西。