どういうわけか、工場データからコントローラにデータを取得できません。私は、JavaScriptのリモーティングを使用していますが、工場は工場からコントローラへデータを転送
function userRecordFetchFactory($rootScope) {
var custRec = {};
return {
checkRecordType : function(urlObject) {
function loadRecordType(err, records, event) {
if (err) {
displayReadingInformationErrorView();
} else if (records != null && records.length == 0) {
displayReadingInformationErrorView();
} else {
custRec = {
Name : records[0].get('Name'),
lat : records[0].get('Latitude__c'),
lon : records[0].get('Longitude__c'),
SiteStreet : records[0]
.get('SiteStreet__c'),
SiteCity : records[0].get('SiteCity__c'),
SiteCountryCode : records[0]
.get('SiteCountryCode__c'),
SitePostalCode : records[0]
.get('SitePostalCode__c'),
AddressID : records[0].get('AddressID__c'),
loaded : true
};
}
}
if (urlObject && urlObject.aid
&& urlObject.aid.startsWith(accPrefix)) {
objModel = new RemoteObjectModel.Account();
}
if (urlObject && urlObject.aid
&& urlObject.aid.startsWith(leadPrefix)) {
objModel = new RemoteObjectModel.Lead();
}
if (objModel) {
objModel.retrieve({
where : {
Id : {
eq : urlObject.aid
}
}
}, loadRecordType);
}
return custRec;
}
};
}
の下に与えられていると私のコントローラは、データ
function LocatorInitController($document, $scope,
userRecordFetchFactory) {
console.log("inside the controller"+urlParams);
$scope.CustomerSite = {};
userRecordFetchFactory.checkRecordType(urlParams)
.then(function successData(data){
$scope.CustomerSite = data.data;
execGeoCoding();
});
私は未定義のプロパティの成功を読み取ることができないエラーを取得するにアクセスするには以下の通りです。ファクトリでは、メソッドcheckRecordTypeには、javascriptリモート呼び出しであるretrieve関数があり、finctionにはloadrecordtypeへのコールバックがあります。
私のエラーはuserRecordFetchFactory.checkRecordType(...)と言っています。次に関数ではありません –
.thenは、クライアントが約束を期待していることを意味します。 checkRecordTypeの概要からは、約束が返されているようには見えません。 – westandy