1

使用promise-tracker时遇到问题。AngularJS中的promise-tracker

我想要的是跟踪对话。和我的代码部分如下:

JS:

angular.module('myModule', ['ajoslin.promise-tracker']) 
    .factory('Conversation', function (promiseTracker) { 
    return { 
     addMessage: function (opts) { 
     /* Post data to server */ 
     var promise = POSTING DATA; 
     promiseTracker('message').addPromise(promise); 
     }, 
     removeMessage: function (opts) { 
     /* Delete data */ 
     } 
    } 
    }) 

    .directive('newMessage', function (Conversation) { 
    return { 
     scope: true, 
     restrict: 'EA', 
     link: function (scope) { 
     scope.addMessage = function() { 
      Conversation.addMessage({ /* Some opts */ }) 
     } 
     } 
    } 
    }) 

    .directive('Tracker', function (promiseTracker) { 
    var opts = { /* Spinner opts */ } 
    return { 
     scope: true, 
     replace: true, 
     restrict: 'EA', 
     templateUrl: 'tracker.html', 
     link: function (scope, element, attrs) { 
     /* new spinner */ 
     scope.tracker = promiseTracker(attrs.tracker); 
     /* And some thing */ 
     } 
    } 
    }) 

新message.html:

<form name="myForm" new-message> 
    <input type="text" name="content" /> 
    <i tracker="message" ></i> 
</form> 

tracker.html:

<div> 
    <div> 
     <i ng-show="tracker.active()" ng-show="!isHidden"></i> 
    </div> 
    <input type="submit" value="submit" ng-click="addMessage()" ng-disabled="tracker.active()"> 
</div> 

使用这些代码,当页面中只有一个表单时它运行良好。

但是当我在模板中添加更多的表单时,它有一些问题。

当跟踪一个承诺,所有的微调显示!

now result(click)

而这正是我想要的:

hope result(click)

我想这有什么不对我的范围。但我不知道如何解决它。

任何人都可以帮助我吗? Thx!

回答

0

你想要一个全球范围内的承诺跟踪器,如果你想显示加载微调图形为您的应用程序 - 直接从官方文档举一个例子:

angular.module('app', ['ajoslin.promise-tracker']) 

.factory('myTracker', function (promiseTracker) { 
    return promiseTracker(); 
}) 

.controller('AppCtrl', function ($rootScope, myTracker) { 
    $rootScope.$watch(myTracker.active, function (isActive) { 
    //doSomething() 
    }); 
});