Javascript 角度方向参数长度限制

Javascript 角度方向参数长度限制,javascript,json,angularjs-directive,Javascript,Json,Angularjs Directive,发送到指令的参数是否有长度限制?这是我的密码: header = JSON.stringify(header); columnObj = JSON.stringify(columnObj); $compile('<div column-filter-sort header=' + header + ' columnobj=' + columnObj + '></div>')(scope); Var columnObj看起来不错,但在Var header=JSON

发送到指令的参数是否有长度限制?这是我的密码:

header = JSON.stringify(header);
columnObj = JSON.stringify(columnObj);
$compile('<div column-filter-sort header=' + header + ' columnobj=' +     columnObj + '></div>')(scope);
Var columnObj看起来不错,但在Var header=JSON.parse(attrs.header)时失败; 检查var头,我发现它不完整。我得到的错误是: SyntaxError:输入意外结束 at Object.parse(本机)

请帮忙


谢谢

首先将编译更改为:

$compile('<column-filter-sort header="' + header + '" columnobj="' +     columnObj + '"></div>')(scope);
这应该能奏效。 有关更多详细信息,请查看此帖子


顺便说一句,您还可以在第一个JS部分将JSON传递到全局作用域,并使用它,而无需在指令中使用隔离作用域。

之所以有效,是因为compile需要将JSON用引号括起来。诀窍是使用双绑定将json传递到指令处的隔离范围,而不是使用属性@Toni感谢您的反馈我不确定,但现在它甚至没有进入指令。错误是:[$parse:ueoe]在错误处(本机),请检查我上一次将列筛选器排序作为元素放置时的编辑,因为在指令中对其进行了限制。我已将编译更改为此$compile(“”)(范围);
$compile('<column-filter-sort header="' + header + '" columnobj="' +     columnObj + '"></div>')(scope);
a.directive('columnFilterSort', function () {
return {
    restrict: 'E',
    scope: {
            'header' : '=',
            'columnobj' : '='
         },
    link: function (scope, elem, attrs) {
        var columnObj = JSON.parse(scope.columnobj);
        var header = JSON.parse(scope.header);
}
});