我希望在AngularJS完成后执行一些代码,以便在事件发生后更改HTML。我试图做以下事情:
angular.module('ngC', [], function($routeProvider, $locationProvider)
{
$locationProvider.html5Mode(true);
})
.directive("carousel", function () {
return function (scope, element, attrs) {
scope.$watch("imgs", function (value)
{
// Here my code
});
};
});
问题是我的代码是在AngularJS替换{{}}
代码之前执行的,但我想在之后执行它。
答案 0 :(得分:0)
如果newValue与$ watch听取功能中的oldValue不同,只需比较一下这是否会发生变化。
scope.$watch("imgs", function (newValue, oldValue)
{
if(newValue !== oldValue) {
// Here my code
}
});
编辑:来自文档
在观察者注册观察者之后,异步调用侦听器fn(通过$ evalAsync)来初始化观察者。在极少数情况下,这是不合需要的,因为当watchExpression的结果没有改变时会调用监听器。要在侦听器fn中检测此场景,您可以比较newVal和oldVal。如果这两个值相同(===)则由于初始化而调用了监听器。
答案 1 :(得分:0)
我找到了答案:jQuery doesn't work in AngularJS ng-view properly
// (inside some function with $rootScope available)
$rootScope.$on('$viewContentLoaded', function() {
// ... (multiview init code here) ...
});