不知何故,我無法將我的數據從工廠方法傳輸到控制器。我使用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遠程調用,並且該函數具有對loadrecordtype的回調。
好吧,我已經重構代碼,現在把。那麼我的錯誤表示userRecordFetchFactory.checkRecordType(...)。那麼這不是一個函數 –
。這意味着你的客戶正在期待一個承諾。僅僅從checkRecordType的簡要概述,它看起來不像是一個承諾正在返回。 – westandy