从Angular服务更新ng模型

Update ng-model from Angular service

本文关键字:ng 模型 更新 服务 Angular      更新时间:2023-09-26

我有角度应用程序和textarea

<textarea id="log_text_area" readonly>{{logger}}</textarea>

此外,我有一个Logger服务,它必须更新此textarea

angular.module('app').factory('Logger', [function(){
    var logger = {};
    //
    // Write log
    //
    logger.log = function(log_area, arguments){
        // get current date
        var date = new Date();
        // log message
        var message = '';
        // traverse object and collect log message
        for (var i = 0; i < arguments.length; i++) {
            message += arguments[i] + " ";
        }
        console.log(log_area);
        // check log area
        if (log_area != undefined){
            // log value
            var value = "[" + date + "}] " + message + "'n";
            value += log_area;
            log_area = value;
        }
    };
    // return logger
    return logger;
}]);

现在我想从控制器更新我的文本区域:

function MyController($scope, Logger) {     
    $scope.logger = '';
    Logger.log($scope.logger, 'Logs Logs Logs');
}

但它不会更新。如何从angular服务更新文本区域?

谢谢。

让日志函数只返回文本,并将返回的值分配给控制器中的$scope属性。

$scope.logger = Logger.Log('log, log log');

或者,您可以在log()调用之后调用$scope.$apply();,但方法numero-uno更干净。