我请求php获取JSON字符串,当我使用401 Unauthorized
访问模板中的字符串时,它将返回带有值的字符串,但是当我尝试在控制器中使用相同的模型时( $ctrl.respostas[0].status
),什么也没有,我需要检查控制器中的答案,但我不知道如何,任何人都可以帮助我?
this.respostas[0].status
控制器
Template:
<p>respostas: {{$ctrl.response}}</p>
<p>confere: {{$ctrl.test}}</p>
<p>status: {{$ctrl.response[0].status}}</p>
请求
angular.
module('tela').
component('tela', {
templateUrl: 'tela/tela.template.html',
controller: ['Request',
function telaController(Request, ̶$̶r̶o̶o̶t̶S̶c̶o̶p̶e̶) {
this.test = "ola";
this.id = "1";
this.validate = function validate() {
this.response= Request.save({id: this.id},[]);
this.test = "algo";
this.test = this.response[0].status;
}
}
]
});
答案 0 :(得分:0)
重要的是要意识到,调用$resource对象方法会立即返回空引用(对象或数组取决于isArray
)。从服务器返回数据后,将使用实际数据填充现有引用。
HTML模板显示数据是因为插值绑定{{ }}
在每个摘要周期检查对象并更新DOM。另一方面,控制器需要使用附加的承诺来检查数据:
app.component('tela', {
templateUrl: 'tela/tela.template.html',
controller: ['Request',
function telaController(Request, ̶$̶r̶o̶o̶t̶S̶c̶o̶p̶e̶) {
this.test = "ola";
this.id = "1";
this.validate = function validate() {
this.response= Request.save({id: this.id},[]);
var promise = this.response.$promise;
promise.then(data => {
console.log(data[0].status);
console.log(this.response[0].status);
});
}
}
]
});
从文档中:
资源实例和集合具有以下附加属性:
$promise
:创建该实例或集合的原始服务器交互的承诺。成功后,将使用相同的资源实例或集合对象解析承诺,并使用来自服务器的数据进行更新。
失败时,承诺将被http response对象拒绝。