recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - L'affectation écrite par Angular sous le service ne peut-elle pas être surveillée sur le $scope du contrôleur ?

Par exemple, l'attribution d'un objet ne peut pas être liée dans les deux sens, mais l'attribution d'une chaîne ou quelque chose peut être surveillée. Que se passe-t-il si je dois attribuer une valeur à un objet pour qu'il puisse être lié dans deux directions (J'ai dit que la valeur attribuée après avoir cliqué sur le bouton ne peut pas être liée)

<body ng-app="app">

    <p ng-controller="loginCtrl">
        <pre>{{info}}</pre>
        <button ng-click="setvalue()">aaaa</button>
    </p>
    <p ng-controller="loginCtrl">{{info.isIn}}</p>
    <script type="text/javascript">
    var app = angular.module('app', []);

    app.factory('login', ['$timeout', function($timeout){
        var ret = {}

        ret.info = {
            isIn:false
        }
        //如果这里赋值成这样
        var dd = {
            isIn:'aaaaa'
        }
        $timeout(function() {
            ret.info.isIn = true;
        }, 1000);
        ret.setvalue = function(){
            //这里的修改就无法绑定,这事为什么
            ret.info = dd
            //ret.info.isIn=dd.Isin  //这样写就可以
        }
        return ret;
    }]);

    app.controller('loginCtrl', ['$scope', 'login', function($scope, login){

        $scope.info = login.info;
        $scope.setvalue = function(){
            login.setvalue('dddd')
        }
    }])
    </script>
</body>

Étant donné que les données sur le serveur sont un objet jsonp, elles sont nombreuses à être transmises.
S'il vous plaît, aidez-moi ~~, le code ci-dessus peut être exécuté en important angulaire, aidez-moi s'il vous plaît à le corriger

天蓬老师天蓬老师2825 Il y a quelques jours671

répondre à tous(2)je répondrai

  • 给我你的怀抱

    给我你的怀抱2017-05-15 16:53:05

    <p ng-controller="loginCtrl">
        <pre>{{login.info}}</pre>
        <button ng-click="setvalue()">aaaa</button>
    </p>
    
    app.controller('loginCtrl', ['$scope', 'login', function($scope, login){
    
            $scope.login= login;
            $scope.setvalue = function(){
                login.setvalue('dddd')
            }
        }])
    

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-15 16:53:05

    Cela implique des connaissances de base en js et n'a rien à voir avec angulaire. Exemple simple :

    jsvar ret = {};
    ret.info = {isIn:false};
    var $scope = {};
    $scope.info = ret.info;
    
    //这里修改
    ret.info = {isIn:true,xx:'xx'};
    console.log(ret.info, $scope.info);// 结果是:Object {isIn: true, xx: "xx"} Object {isIn: false}
    

    répondre
    0
  • Annulerrépondre