我正在使用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>
答案 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。