javascript شرح - كيفية تغيير القيمة بعد تأخير باستخدام angularjs؟




download vs (3)

أنت تجري تغييرات على النطاق خارج ما يعرفه الزاوي (داخل مهلة).
لذلك يجب عليك استخدام $timeout .. وإلا يتعين عليك استخدام $scope.$apply()

$timeout(function() {
    $scope.val = true;
}, 3000); 

http://jsfiddle.net/6uKAT/21/

بالنسبة إلى المهلة ، استخدم $timeout ، وسوف يستدعي $scope.$apply() لك.
وبالمثل ، لاستخدام اياكس $http .

إذا لم تتمكن من استخدام هذه ، فيجب عليك الاتصال $scope.$apply() بنفسك:

 window.setTimeout(function() {
     $scope.$apply(function() {
        $scope.val = true;
     });
 }, 3000);

أنا خلقت التطبيق الأساسي على أساس angularjs

HTML:

<div ng-app="miniapp">
<div ng-controller="Ctrl">
    My name is 
    <input type="text"/>   
    Val: {{val}}
    <br/>
    <button ng-disabled="val">Submit</button>        
</div>    

JS:

var app = angular.module('miniapp', []);

var glob;
function Ctrl($scope) {      
    glob = $scope;    
     $scope.val = false;

     window.setTimeout(function() {
            $scope.val = true;
        }, 3000);             
}

 window.setTimeout(function() {
            glob.val = true;
        }, 3000); 

كما ترون ، أحاول تغيير val إلى true بعد 3 ثوانٍ بطريقتين لكن لا أحد يعمل من أجلي. غريب حقا. هل فاتني شيء؟

في الواقع ، أحاول تغيير القيمة بعد الحصول على استجابة من Ajax ، لكن لنفترض أن المشكلة نفسها.

شكر،

إليكم http://jsfiddle.net/6uKAT/20/ : http://jsfiddle.net/6uKAT/20/


حاول استخدام: $timeout

المجمع الزاوي ل window.setTimeout. يتم التفاف الدالة fn في كتلة try / catch وتفويض أي استثناءات لخدمة $ExHandler.

$timeout(fn[, delay][, invokeApply]);

تحديث كمان

جافا سكريبت

var app = angular.module('miniapp', []);

function Ctrl($scope, $timeout) {  
     $scope.val = false;
     $timeout(function(){$scope.val = true}, 3000);       
} 

var myObject = {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
    
delete myObject.regex;

console.log ( myObject.regex); // logs: undefined

هذا يعمل في فايرفوكس وإنترنت إكسبلورر ، وأعتقد أنه يعمل في جميع الآخرين.





javascript angularjs