$scope.phone
不是有效的屬性名稱文字。你可以使用"$scope.phone"
:
$scope.messages.$add({
"$scope.phone" : {
username: $scope.username,
email: $scope.email,
dob: $scope.dob
}
});
... 但它會創建與實際名稱,這可能不是你想要的屬性。看看這個字面意思,我不能從名字中弄清楚你真正想要什麼,我不能使phone
與其他字段名稱相關。
回覆您的評論:
See this example: usersRef.set({ alanisawesome: { date_of_birth: "June 23, 1912", full_name: "Alan Turing" } Instead of alaniawesome I want to have phone as my key.
你不能這樣做,在一個對象初始化,在它的屬性初始化的屬性名組成部分總是從字面上理解。你必須做,在兩個單獨的語句:
var obj = {};
obj[alanisawesome] = { date_of_birth: "June 23, 1912", full_name: "Alan Turing" };
usersRef.set(obj);
做是因爲在JavaScript中,訪問屬性名稱的對象初始化之外時,您可以使用點符號和文字屬性名稱( obj.foo
)或括號內記法和字符串屬性名稱(obj["foo"]
)。在後一種情況下,字符串可以是任何表達式的結果,包括變量引用。
你不能有'$ scope.phone'爲重點的名字 – 2014-09-05 12:09:30
@ codename-:是, 您可以。但他們可能不想。 – 2014-09-05 12:11:24
@ T.J.Crowder:我的意思是你不能寫他的方式。我把你的答案作爲一個字符串,而不是變量 - 有兩個不同的東西。 – 2014-09-05 12:40:34