Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs指令:嵌套的ng类失败_Javascript_Angularjs_Angularjs Directive_Ng Class - Fatal编程技术网

Javascript AngularJs指令:嵌套的ng类失败

Javascript AngularJs指令:嵌套的ng类失败,javascript,angularjs,angularjs-directive,ng-class,Javascript,Angularjs,Angularjs Directive,Ng Class,当我需要嵌套ng类时,AngularJs指令面临一个奇怪的问题。是一个JSFIDLE,它显示了一个假设情况的问题 HTML <div in-directive ng-class="{ 'testing1': 1 == 1 }"></div> 这是一个无效的JSON。我做错什么了吗?目前,我所做的工作是将ng类移动到上div元素。但是这显然是不需要的。当您有两个这样的元素属性时,一个在元素中,一个在模板中,angular会连接字符串,导致表达式无效 如果在小提琴中查看HT

当我需要嵌套ng类时,AngularJs指令面临一个奇怪的问题。是一个JSFIDLE,它显示了一个假设情况的问题

HTML

<div in-directive ng-class="{ 'testing1': 1 == 1 }"></div>

这是一个无效的JSON。我做错什么了吗?目前,我所做的工作是将ng类移动到上div元素。但是这显然是不需要的。

当您有两个这样的元素属性时,一个在元素中,一个在模板中,angular会连接字符串,导致表达式无效

如果在小提琴中查看HTML,则元素将变成:


Hi

这里已经报道了类似的问题

AngularJS团队决定在使用
template/templateUrl
replace
标志设置为true的指令时不支持复杂属性合并

这个问题是他们使用指令的
replace
标志的原因之一


你也可以在这里看到长时间的讨论

我注意到了这一点。但你认为这是预期的行为吗?@AlanSouza当然,为什么不呢?它只是一个字符串,在通过角度求值之前,它会被连接起来。这就是
模板的工作原理。我理解你的观点。但如果支持replace=true,我希望AngularJS能为我处理合并场景。他们会因此而反对替换属性。太好了!谢谢@runTarm。从现在起,我将尽可能避免使用replace。
var myApp = angular.module('myApp', []);

myApp.directive('inDirective', function () {
    return {
        restrict: 'A',
        replace: true,
        template: '<div ng-class="{ \'testing\': 1 == 1 }">Hi</div>'
    };
});
[{ 'testing11': 1 == 1 } { 'testing': 1 == 1 }]