委托服务时如何保持范围?

时间:2014-10-14 07:03:32

标签: angularjs angularjs-scope angular-services

我已经构建了一个小型服务来处理我的应用程序中的errorMessages。它在rootScope上公开发布,可以根据需要在我的页面中添加新消息。现在需要在消息中提供可点击的链接。

问题:

  1. 如何动态地将由angular处理的JavaScript添加到创建的消息中? 我添加了有效的onclicks,但似乎没有处理ng-click。
  2. 我想要运行的Js位于首先创建消息的控制器中。如何在单击错误消息中的链接时确保我最终达到了正确的范围?
  3. 如果添加消息的功能是另一项服务,我该如何解决?
  4. 我正在玩的服务:     var myApp = angular.module(' myApp',[]);

    function errorHandlingFactory() {
    
        this.messages = [];
    
        this.addMessage = function (messageText, type) {
            var message = this.messages.push({messageText: messageText, type: type, closeable: false});
        };
    
        this.getHtmlContent = function(messageId) {
            return this.messages[messageId].messageText;
        }
    
        this.removeMessage = function (messageId) {
            this.messages.splice(messageId, 1);
        };
    
        this.clearMessages = function() {
            this.messages = [];
        };
    }
    
    myApp.service('errorHandling', function () {
        return new errorHandlingFactory();
    });
    
    myApp.run(function($rootScope, errorHandling) {
        // Attach global error handling object to our rootScope
        $rootScope.errorFactory = errorHandling;
    });
    
    
    // Usage from controller
    $rootScope.errorFactory.addMessage('The message to be added', 'warning');
    

    为了让它更容易理解,我已经创建了一个jsfiddle来看待。 http://jsfiddle.net/kxsmL25h/7/

    我想要做的是当点击消息中的链接时,函数desiredCallback在GenericTestController上运行。

0 个答案:

没有答案