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 指令需要一个变量(地方)来改变一些东西,写一些东西。