cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Tugasan yang ditulis oleh sudut di bawah perkhidmatan tidak boleh dipantau pada $skop pengawal?

Sebagai contoh, memberikan objek tidak boleh terikat dua hala, tetapi memberikan rentetan atau sesuatu boleh dipantau. Bagaimana jika saya perlu memberikan nilai kepada objek supaya ia boleh diikat dalam dua arah (Saya katakan bahawa nilai yang diberikan selepas mengklik butang tidak boleh terikat)

<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>

Oleh kerana data pada pelayan adalah objek jsonp, terdapat banyak yang diturunkan.
Tolong bantu saya~~, kod di atas boleh dijalankan dengan mengimport sudut, tolong bantu saya membetulkannya

天蓬老师天蓬老师2774 hari yang lalu646

membalas semua(2)saya akan balas

  • 给我你的怀抱

    给我你的怀抱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')
            }
        }])
    

    balas
    0
  • 仅有的幸福

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

    Ini melibatkan pengetahuan asas tentang js dan tiada kaitan dengan sudut. Contoh mudah:

    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}
    

    balas
    0
  • Batalbalas