cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - jQuery menetapkan nilai input Pengawal Angularjs tidak dapat

Saya tahu bahawa ini bertentangan dengan peraturan Angularjs.
Mari kita bercakap tentang adegan itu dahulu.
Pengguna mengklik butang "Tambah" pada halaman A, dan window.open membuka halaman B. Selepas mengisi maklumat di halaman B, klik simpan, dan mahu menggemakannya ke halaman A. Kemudian serahkannya kepada pengawal bersama-sama dengan beberapa maklumat di halaman A.
Oleh kerana saya baru menggunakan Angularjs, saya masih menggunakan page B opener.document.getElementById untuk menetapkan halaman induk (nilai input tersembunyi halaman A).
Walau bagaimanapun, nampaknya paparan input pada halaman telah berubah, tetapi model sebenar tidak berubah sama sekali, dan nilai yang diperolehi dalam pengawal semuanya tidak ditentukan
Saya ingin meminta nasihat
1. Jika ia ditulis seperti ini, bagaimana ia harus dilakukan supaya pengawal boleh mendapatkan nilai input yang dikembalikan oleh halaman B tersembunyi.
2. Jika anda mengikuti kaedah penulisan Angularjs, bagaimanakah ia harus berubah?

Halaman A dilampirkan:

<a href="javascript:void(0);" ng-click="add()" >新增</a>
<input id = "abv" ng-model="abv" class="intxt" type="text">
<a href="javascript:void(0);" ng-click="save()" id = "save">保存</a>

A.js:

$scope.add = function(){
    var openCustomer =  window.open('B.html');

};
$scope.save = function(){
    console.log('save ' + $scope.abv);

};

Halaman B:

this.opener.document.getElementById("abv").value = document.getElementById("a").value;
this.opener.document.getElementById("save").click();
習慣沉默習慣沉默2776 hari yang lalu759

membalas semua(4)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 16:51:38

    Anda hanya perlu mengubah suai input dan kemudian menambah acara menggunakan JQ
    $("#cert_valid_from").val(date1).trigger('change');
    Terutamanya pencetus simulasi mencetuskan peristiwa perubahan

    balas
    0
  • 给我你的怀抱

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

    Kod Rujukan

    A.js:

    $scope.add = function() {
            var openCustomer = window.open('B.html');
    
    };
    
    // 这里不用$scope而用window是为了在B页面调用
    window.save = function(value) {
        $scope.abv = value;
    
        alert($scope.abv);
    };
    

    Halaman B

    //这里直接调用刚才A.js声明的save方法,然后把B页面的值传进去
    opener.save(document.getElementById('a').value);
    window.close();
    

    Kini makluman yang anda perlukan tersedia dalam A.js$scope.abv.

    Tetapi perlu diingat bahawa pendekatan ini adalah penyelesaian sepenuhnya dan sangat tidak disyorkan

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-15 16:51:38

    Sebabnya ialah saya bercadang untuk menggunakan pemalam krom untuk membuat pemalam yang secara automatik membantu saya mengklik butang dan memasukkan perkara Walau bagaimanapun, projek itu dibuat dengan Angular Menetapkan nilai input menggunakan js tidak mencukupi . Saya perlu mengemas kini nilai model, yang merupakan satu pembaziran masa. operasi. . . .
    Sial, saya mengambil masa yang lama untuk mencari jawapannya, saya benar-benar bekerja keras untuk mencari jawapannya dicetuskan pada mulanya. Saya fikir ia adalah perubahan, tetapi selepas bekerja keras, saya akhirnya mendapati bahawa ia adalah input $('input').val(123).trigger('input') adalah ok.
    Walau bagaimanapun, projek saya adalah lebih rumit rujukan b.html melalui iframe Kedua-dua html mempunyai set jquery dan sudut, jadi jquery b.html perlu digunakan untuk mencetuskan input. pepijat), iaitu window.frames["f1"].contentWindow .$('input').val('55555555555').trigger('input') dan bukannya
    $('input',window .frames["f1"].contentWindow.document).val('55555555555 ').trigger('input')

    balas
    0
  • 黄舟

    黄舟2017-05-15 16:51:38

    Nilai ngModel tidak dikemas kini/dipaparkan
    Rujukan http://www.cnblogs.com/whitewolf/p/ngmodel-zhi-bu-geng-xin-slash-xian-shi.html

    Sebab
    1. Nilai model tidak memenuhi syarat pengesahan borang, jadi sudut tidak akan memaparkannya
    2 Disebabkan mekanisme pewarisan rantai prototaip khas JavaScript, penetapan atribut dalam $scope tidak boleh dikemas kini kepada skop $ ibu bapa

    Penyelesaian pantas untuk sebab 2: Tambahkan "." pada nilai atribut ngModel, kemudian pengambilan rantaian prototaip JavaScript akan dimulakan.

    balas
    0
  • Batalbalas