【发布时间】:2014-01-11 04:19:54
【问题描述】:
我发现指令属性在 Chrome 和 FF(也是 IE)中以不同的顺序插入。因此,例如该指令将在 Chrome 中产生与 FF 中不同的结果:
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 中的属性没有排序?
-
并不是说它们没有被订购。在 Chrome 中,结果总是
123,在 FF 中总是321。所以我的问题是结果不同的原因是什么? -
如果你使用 vanilla javascript 而不是 3rd 方库会发生什么?
-
以某种方式克服它不是问题。更重要的是,我想知道AngularJS这种行为的原因是什么。
-
是的..我的意思是插值。见docs.angularjs.org/guide/directive - 搜索
$observe。
标签: javascript angularjs cross-browser