這讓我瘋狂。我有一個非常簡單的「問題」,花了我幾個小時,仍然不知道發生了什麼。異步數組沒有使用任何異步?
我有一個從父服務繼承的子服務(我正在使用ES6)。構造函數接受一個名爲options
的參數。 options
將被分配到this._defaults
。
現在在我將options
傳入我的對象(new Service(options)
)之前,我用一些數據填充了options
。爲了保持它的簡單,我現在options
物體看起來是這樣的:
const options = {
types: []
}
現在我添加一些東西到類型數組,像這樣:
const Types = {
standard: {
some: 'data'
},
freeroll: {
some: 'data'
},
mainevent: {
some: 'data'
},
qualifier: {
some: 'data'
}
};
angular.forEach(Types, (val, key) => {
options.types[key] = true;
});
我給你我的服務,這樣的範圍:
$scope.service = new Service(options)
並使用控制檯輸出服務。控制檯現在說_defaults.types
的值是Array(0)
。當我點擊數組時,會顯示正確的值,但範圍不知道。
那是怎麼回事? Array(0)
是不是意味着在console.log()時,該數組中沒有填充任何值,但後來呢?像異步函數會做什麼?
Here is a plunk of my problem。
的確如此。應該提到的是,JSON.stringify的工作方式,由json過濾器在內部使用。 – estus
那麼我應該說什麼。這是一個容易犯的錯誤,我沒有看到它。完全合理,謝謝。 – Fortuna
沒問題 - 當你看代碼太長時間(特別是你自己)很難看到像括號和大括號的小殺手 – gonzofish