angular.js - angular中factory里可以操作controller里的数据吗
PHP中文网
PHP中文网 2017-05-15 17:06:12
0
3
563

我想在factory中获取并改变顶级控制器里的变量 可以办到吗

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(3)
習慣沉默

Généralement, lorsque je travaille sur un projet, les services servent à deux fins :
Premièrement, ils sont utilisés comme méthodes publiques, telles que les méthodes de soumission, certains services dans les boîtes contextuelles et d'autres services généraux similaires.
Deuxièmement, il est utilisé lors du transfert de paramètres ou d'objets entre certains contrôleurs en fonction de besoins particuliers. Cette situation est rare et n'est généralement pas recommandée~

.

Quand vous avez parlé de changer les variables du contrôleur de niveau supérieur dans le service, j'ai l'impression que vous avez fourni un fragment de votre idée, plutôt que le point de demande fondamental~ Quelle est votre demande ?

某草草

Il ne peut pas être utilisé directement, il existe deux manières :
1. Modifiez la valeur via la fonction de rappel
2 Modifiez la valeur en passant les paramètres de l'objet (tableau, objet)

.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body ng-app="myApp" >
<p ng-controller="myCtrl">
{{ value.name }} {{ value.value }}
</p>
<hr />
<p ng-controller="myCtrl2">
{{ value.name }} {{ value.value }}
</p>
    
<script>
var app = angular.module('myApp', []);

app.service('myService', function() {
    this.valueSet = function(value){
        this.valueFunction(value);
    };
    this.valueCallback = function(callback){
        var newValue = {
            name : "hello",
            value : "world"
        };
        this.valueFunction(newValue);
        callback(newValue);
    };
    this.valueFunction = function(value){
        value.name += ",";
        value.value += "!";
        return value;
    };
});
app.controller('myCtrl', ['$scope', 'myService', function($scope, myService) {
    $scope.value = {
        name : "你好",
        value : "世界"
    };
    //回调方式改版 $scope 的值
    myService.valueCallback(function(value){
        $scope.value = value;
    });
}]);
app.controller('myCtrl2', ['$scope', 'myService', function($scope, myService) {
    $scope.value = {
        name : "你好",
        value : "世界"
    };
    myService.valueSet($scope.value);
}]);
</script>

</body>
</html>
漂亮男人

C'est possible, mais pas recommandé.
Encapsulez les données du contrôleur dans un objet, puis transmettez-les en tant que paramètre à la méthode d'usine.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!