带有“ngModel”的输入文本仅在离焦后显示其值

时间:2016-05-05 21:19:50

标签: javascript angularjs

我正在使用angularjs来填充表单中的一组输入。

为了填充这些输入,我正在使用json数据并且它可以工作,但是,输入不会显示/显示值,直到我选择输入然后单击页面中的任何其他(散焦)。

这是我的代码(javascript / angularjs):

var app = angular.module('myApp', []); 
    app.controller('registerController', function($scope,$timeout,connectWS) {
        $scope.start = function(){
            connectWS.getPerson(2,function(response){
                var data = JSON.parse(response.response.result.result); //<----JSON data
                $scope.register=data; //<-----value assignation
            });
        };
    });

app.factory('connectWS', function($http){
        return {
            getPerson: function(idVal,callback){
                var formData = '{'+
                    '"data": {'+
                        '"id":"'+idVal+'"'+
                    '}'+
                '}'; 

                var request = {
                    'function': 'getdata',
                    'parameters' : formData
                };

                var op = gapi.client.request({
                    'root': 'https://script.googleapis.com',
                    'path': 'v1/scripts/' + SCRIPT_ID + ':run',
                    'method': 'POST',
                    'body': request
                });

                op.execute(callback);
            }
        };

...


...

function checkAuth() {
        gapi.auth.authorize({
            'client_id': CLIENT_ID,
            'scope': SCOPES,
            'immediate': true
        }, function(authResult){
            var scope = angular.element(document.getElementById("registerEditionDiv")).scope();
            scope.$apply(function () {
                scope.start();
            });
        });
    }

此后的代码运行:

<script src="https://apis.google.com/js/client.js?onload=checkAuth"></script>

这是我的代码(html / angularjs):

<div class="regiRow"><p>Nombre:</p> <input type="text" id="name" ng-model="register.name"/></div>
                            <div class="regiRow"><p>Fecha de nacimiento:</p> <input type="text" id="birthdate" ng-model="register.birthdate"/></div>

1 个答案:

答案 0 :(得分:0)

由于我现在不知道的原因,问题解决了添加“$ scope。$ digest();”在“$ scope.start”函数中。像这样的东西:

$scope.start = function(){
            connectWS.getPerson(2,function(response){
                var data = JSON.parse(response.response.result.result); //<----JSON data
                $scope.register=data; //<-----value assignation
                $scope.$digest(); //<------Magic
            });
        };

我真的不知道为什么,我的客人可能是因为该函数被调用“$ scope。$ apply(function())”但我不确定。关于角度的一切,我仍然noob noob。