我正在編寫一個小型的Angular應用程序,它依賴於應用程序外部定義的一些常用功能來跨不同控制器執行任務。在我的一個控制器中,範圍對象在控制器加載時被聲明。我希望能夠稍後在我的幫助函數中分配它,但分配不起作用。在角度應用程序之外分配範圍對象
下面是相關代碼:
.controller('myCtrl', function($scope, myFactory){
$scope.myObj;
$scope.saveEntry = function() {
myFactory.saveEntry($scope.obj);
formatSingleTableEntry($scope.obj, $scope.myObj);
$scope.obj = {};
}
});
// Entry Formatter
function formatSingleTableEntry(entry, scopeObject) {
if (typeof scopeObject === 'undefined') {
scopeObject = [];
}
if (typeof entry.obsDt === 'string') {
entry.obsDt = dateFormat(entry.obsDt);
}
scopeObject.push(entry);
}
// Date Formatter
function dateFormat(date) {
date = date.split('');
date[10] = 'T';
date = date.join('');
return Date.parse(date);
}
如果我指定的範圍對象在控制器空數組,一切正常,但是分配不會在此配置。我可以查看實際發生在輔助函數中的任務,但是當我檢入控制器時,它沒有。
爲什麼?
方式的代碼目前的功能是中保存的會造成助手功能給scopeObject變量分配作爲數組的第一個條目的任何引用,然後按下條目。我可以檢查,它工作正常,然後當我回到控制器時,即使在賦值和推送之後,scopeObject仍然未定義。 –
解釋'回來'更詳細....每個使用是一個新的實例。如果您需要會話持久性數據需要存儲在服務中 – charlietfl
只需執行console.logs,在代碼的不同點檢查對象的類型。這回來了。 –