运行时
helper
将值存储在变量verCandidatos.postulados
中。
一旦我获得了信息,我需要获取一个链接的文档(使用函数
ng-init="candidato = la postulado.candidato()
),该文档在来自文件的helper
上运行:collection.js
。
有时
html
正确显示属性:{{candidato.nombre}}
、{{candidato.apellidos}}
和{{candidato.sexo}}
,有时却显示为空,为什么?
很奇怪,像一个
bug
什么的。这种行为怎么可能?
正在获取信息,因为
ng-repeat
可以工作并显示元素。
下面是publishComposite()、collection.js、
html
和js
客户端
html 客户端
my-app/imports/ui/components/vacantes/verCandidatos/ verCandidatos.html
<div ng-repeat="postulado in verCandidatos.postulados">
<div ng-init="candidato = postulado.candidato();">
{{candidato.nombre}}
{{candidato.apellidos}}
{{candidato.sexo}}
</div>
</div>
客户端中的js
my-app/imports/ui/components/vacantes/verCandidatos/ verCandidatos.js
imports ...
class VerCandidatos {
constructor($scope, $reactive, $stateParams) {
'ngInject';
$reactive(this).attach($scope);
this.vacanteId = $stateParams.vacanteId;
this.subscribe('vacantes.candidatosOseleccionados', ()=> [{vacanteId: this.vacanteId}, {estado: 1}]);
this.helpers({
postulados (){
return Postulaciones.find();
}
});
}
}
collection.js
my-app/imports/api/postulaciones/collection.js
imports...
export const Postulaciones = new Mongo.Collection('postulaciones');
Postulaciones.deny({...});
Postulaciones.helpers({
candidato(){
return Candidatos.findOne({_id: this.candidatoId});
}
});
publish.js:
my-app/imports/api/vacantes/server/publish.js
imports...
if (Meteor.isServer) {
Meteor.publishComposite('vacantes.candidatosOseleccionados', function (vacanteId, estado) {
const selector = {$and: [estado, vacanteId]};
return {
find: function () {
return Postulaciones.find(selector);
},
children: [
{
find: function (postulacion) {
return Candidatos.find({_id: postulacion.candidatoId}, {
fields: {
nombre: 1,
apellidos: 1,
sexo: 1,
}
});
}
}
]
};
});
}
有什么想法吗? 谢谢。
ISSUE
位于 html
解决方案已检测到ng-init
,直接调用helpers
里面的collection.js
,其他文件(js in client
、collection.js
、publish.js
)不修改。
html
文件如下:
<div ng-repeat="postulado in verCandidatos.postulados">
{{postulado.candidato().nombre}}
{{postulado.candidato().apellidos}}
{{postulado.candidato().sexo}}
</div>
感谢您的阅读。 我希望你会有用。