我的angular指令类的代码片段:
if (currentIndex < newMessages.length) {
scope.message = newMessages[currentIndex];
} else {
scope.message = newMessages[0];
}
$timeout(function () {
var msgText = $('#msg-text');
console.log("xx:" + msgText.attr('class'));
// has-image no-desc no-desc-remove
});
当我更改scope.message时,angular会刷新模板,$ timeout会确保在使用新元素等更新模板后调用其包含的函数。对吗?
它似乎正在运作,但问题是,我有类似&#34; has-image no-desc no-desc-remove &#34;等课程。后来它改为&#34; has-image&#34;。
我如何捕捉和事件,哪些类完全更新?因为这对我的代码逻辑没有好处。
答案 0 :(得分:0)
我如何捕捉和事件,哪些类完全更新?因为这对我的代码逻辑没有好处。
根据您的代码和要求,您需要知道$scope.message.imageURL
和$scope.message.Description
更新的时刻。对于最基本的方式,您可以使用$scope.$watchGroup()
$ watchGroup的示例。 (这里我把两者的条件都有一些值,你可以按照你想要的方式调整条件)
$scope.$watchGroup(['message.imageURL', 'message.Description'], function (newValues, oldValues){
// newValues[0] => is => $scope.message.imageURL
// newValues[1] => is => $scope.message.Description
// case of both having some value
if(newValues[0] && newValues[1]){
console.log('things has been changed');
}
});
答案 1 :(得分:0)
原来我的html中包含了angular-animate.js,它会自动执行“Class和ngClass动画挂钩”。更多https://docs.angularjs.org/guide/animations。使用$ animate.enabled(false,myElement);
在需要的地方禁用它