angular.js - angularjs menggunakan kilang untuk memindahkan nilai antara dua pengawal, mengapa ia tidak berjaya?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-15 17:00:22
0
1
718

Saya berharap dapat menghantar nilai antara dua pengawal melalui perkhidmatan

Tetapi ia tidak berjaya. . .

Apa kejadahnya kurungan tunggal ini?

Konsol hanya boleh mendapatkan setter tetapi tiada getter
Maafkan saya mengapa?

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(1)
曾经蜡笔没有小新

1. Kurungan tunggal itu bukan apa-apa, ia adalah objek kosong. Kerana anda menetapkan myData kepada {} dalam perkhidmatan, dan pengawal getCtrl anda mendapat nilai ini dari awal, jadi {} akan dipaparkan pada halaman.

2. Apabila anda mengklik butang

, nilai dalam input sebenarnya telah disimpan dalam add, tetapi myData anda tidak akan mendapatkannya untuk menjadikannya lebih mudah, anda boleh melakukannya dalam getCtrl Tetapkan juga butang untuk klik untuk mendapatkan nilai getCtrl; myData3. Dalam fungsi

anda,

anda diletakkan selepas pernyataan _getter Tidak kira bagaimana anda melaksanakannya, tidak akan ada output. console.log.. returnSaya membuat sedikit pengubahsuaian mengikut kod anda, anda boleh lihat.

<p ng-app="myApp">
    <p ng-controller="inputCtrl">
        <input type="text" ng-model="value" />
        <button ng-click="setValue()">Add</button>
    </p>
    <p ng-controller="getCtrl">
        <p>{{ value }}</p>
        <button ng-click="getValue()">Get</button>
    </p>
</p>
angular.module('myApp', [])
    .factory('factory_getValue', function () {
        var myData = {};

        function _getter() {
            console.log(myData);
            return myData;
        }

        function _setter( a ) {
            myData = a;
        }

        return {
            getter: _getter,
            setter: _setter
        };
    })
    .controller('inputCtrl', function ( $scope, factory_getValue ) {
        $scope.setValue = function () {
            factory_getValue.setter($scope.value);
        }
    })
    .controller('getCtrl', function ( $scope, factory_getValue ) {
        $scope.getValue = function () {
            // 点击按钮获取myData的值
            $scope.value = factory_getValue.getter();
        }
    });
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan