2
我发现指令属性在Chrome和FF(也是IE)中以不同顺序插补。因此,例如,该指令将在Chrome中产生不同的结果,作为FF:在不同浏览器中AngularJS属性插值的顺序
var TestDirective = function() {
var linkFn = function (scope, element, attrs) {
attrs.$observe("att1", function() {
$(element).append(attrs.att1);
});
attrs.$observe("att2", function() {
$(element).append(attrs.att2);
});
attrs.$observe("att3", function() {
$(element).append(attrs.att3);
});
};
return {
link: linkFn
}
};
一般来说这种行为是没有问题的,但存在这样的情况插值的顺序很重要。我的问题不是如何克服这一点,什么是不同顺序插值的原因?
还有工作JSFiddle。如果它在Chrome和FF(或IE)中打开,结果将会不同。
HTML中的属性只是没有排序? – Bergi 2013-05-06 12:44:09
不是他们没有订购。在Chrome中,结果始终是'123',FF始终是'321'。所以我的问题是结果不同的原因是什么? – PrimosK 2013-05-06 12:46:08
如果使用vanilla javascript而不是第三方库,会发生什么情况? – Xotic750 2013-05-06 12:47:17