1
我在angularjs中遇到過幾種情況,只有超時才能解決問題。我真的很想明白爲什麼會發生這種情況,以及如何解決這個問題。Angularjs在沒有超時的情況下無法正常工作的情況
例子:
opLibrary.directive('opClick', function($parse, $location, $timeout, opDebug) {
return function(scope, element, attrs) {
var action = attrs.opClick.substring(0, 1) == '/' ? attrs.opClick : $parse(attrs.opClick);
var event = opDebug.desktop ? 'mousedown' : 'touchstart';
element.bind(event, function(e) {
e.preventDefault();
$timeout(function() {
if (angular.isFunction(action)) action(scope);
else $location.path(action);
}, 0);
});
}
});
沒有超時$ location.path只是不觸發
$.getScript('//connect.facebook.net/en_UK/all.js', function(){
FB.init({
appId: 'xxx',
});
$timeout(function() {
$scope.fbInitComplete = true;
}, 0);
});
沒有超時視圖不更新基於fbInitComplete變化,雖然它只是查看變化之前更新如果變量的值確實發生變化,但範圍沒有發現它
非常感謝!這解釋了一切:) – kosmo
@kosmo歡迎:) – karaxuna