AngularJS = =范围内的范围导致解析语法错误

时间:2015-01-03 22:58:31

标签: javascript angularjs angularjs-directive angularjs-scope

我正在尝试使用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。似乎无法弄清楚是什么导致了这个问题

2 个答案:

答案 0 :(得分:1)

双向绑定需要绑定到可以分配的属性。您通过执行无法分配的data="{{details.positions}}"来提供插值(除非您在范围上的属性与插值结果的属性相同)。您必须获得一个不可分配的例外。当你进行双向绑定时,从绑定中删除{{插值。

template: '<div><div ng-show="!ventureshow">{{details.venture_name}}'
            +'<positions data="details.positions" ></positions>'

答案 1 :(得分:0)

如果你使用2种方式绑定方式(=),你必须传递变量,而不是变量的值,因为andgular指令需要变量(地点)来改变某些东西,写点东西。