Javascript AngularJs指令:嵌套的ng类失败
当我需要嵌套ng类时,AngularJs指令面临一个奇怪的问题。是一个JSFIDLE,它显示了一个假设情况的问题 HTMLJavascript 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
<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 }]