AngularJS = scope in an = scope causing parse syntax error
AngularJS = scope in an = scope causing parse syntax error
我正在尝试使用 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
。似乎无法弄清楚是什么导致了这个问题
双向绑定需要绑定在一个可以赋值的属性上。相反,您通过执行 data="{{details.positions}}"
来提供一个无法分配给的内插值(除非您在作用域上有一个与内插结果相同的 属性 )。您必须得到一个不可分配的异常。当您进行双向绑定时,从绑定中删除 {{
插值。
即
template: '<div><div ng-show="!ventureshow">{{details.venture_name}}'
+'<positions data="details.positions" ></positions>'
因为如果你使用 2 种绑定方式 (=),你必须传递给他变量,而不是变量的值,因为 gular 指令需要一个变量(地方)来改变一些东西,写一些东西。
我正在尝试使用 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
。似乎无法弄清楚是什么导致了这个问题
双向绑定需要绑定在一个可以赋值的属性上。相反,您通过执行 data="{{details.positions}}"
来提供一个无法分配给的内插值(除非您在作用域上有一个与内插结果相同的 属性 )。您必须得到一个不可分配的异常。当您进行双向绑定时,从绑定中删除 {{
插值。
即
template: '<div><div ng-show="!ventureshow">{{details.venture_name}}'
+'<positions data="details.positions" ></positions>'
因为如果你使用 2 种绑定方式 (=),你必须传递给他变量,而不是变量的值,因为 gular 指令需要一个变量(地方)来改变一些东西,写一些东西。