Javascript AngularJS:在他的工作之后执行代码
我想在AngularJS完成后执行一些代码,以便在事件发生后更改HTML。我已尝试执行以下操作:Javascript AngularJS:在他的工作之后执行代码,javascript,events,angularjs,Javascript,Events,Angularjs,我想在AngularJS完成后执行一些代码,以便在事件发生后更改HTML。我已尝试执行以下操作: angular.module('ngC', [], function($routeProvider, $locationProvider) { $locationProvider.html5Mode(true); }) .directive("carousel", function () { return function (scope, element, attrs) {
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 replace
{{}}
代码之前执行的,但我希望在代码之后执行。只要比较一下$watch侦听函数中的newValue和oldValue是否不同,这将指示是否有更改
scope.$watch("imgs", function (newValue, oldValue)
{
if(newValue !== oldValue) {
// Here my code
}
});
编辑:从文档中选择
在向作用域注册观察程序后,异步调用侦听器fn(通过$evalAsync)来初始化观察程序。在极少数情况下,这是不可取的,因为在watchExpression的结果没有更改时调用侦听器。要在侦听器fn中检测此场景,可以比较newVal和oldVal。如果这两个值相同(==),则由于初始化而调用了侦听器
我的答案是:
难道你不想做一些类似scope.$watch(attrs.imgs,…)的东西吗?事实上,我想运行一个JQuery命令(JQuery-Raty),所以我需要将它作为最终的“HTML”。
// (inside some function with $rootScope available)
$rootScope.$on('$viewContentLoaded', function() {
// ... (multiview init code here) ...
});