好吧,經過大量的試驗和錯誤之後,我必須嘗試在此處詢問。 我試圖更新火力地堡入口和我的代碼看起來像這樣,無法獲取Firebase更新()以使用提供的對象
這是從我service.js:
//This dosn't work
var updateItem = function (item, id) {
var ref = new Firebase(FIREBASE_URI + '/lessons/' + id);
ref.$update(item);
}
//This works (items is a ref to new Firebase(FIREBASE_URI + '/lessons/');
var addItem = function (item) {
items.$add(item);
}
這是從我的控制器:
$scope.updateLesson = function (item) {
LessonsService.updateLesson(item, id);
}
我收到的錯誤是這樣的:
錯誤:Firebase.set失敗:第一個參數包含無效的鍵($ id)。鍵必須是非空字符串,不能包含「。」,「#」,「$」,「/」,「[」或「]」
我傳入的對象看起來像這樣:
Object {
$id: "-JLIUvVMLqoCVgHaed9f",
$bind: function, $add: function, $save: function, $set: function…}
$add: function (item) {
$auth: function (token) {
$bind: function (scope, name, defaultFn) {
$child: function (key) {
$getIndex: function() {
$getRef: function() {
$id: "-JLIUvVMLqoCVgHaed9f"
$off: function (type, callback) {
$on: function (type, callback) {
$remove: function (key) {
$save: function (key) {
$set: function (newValue) {
$transaction: function (updateFn, applyLocally) {
$update: function (newValue) {
createDate: "2014-04-24T11:29:42.692Z"
desc: "test"
somemorevalues: "here"
}
我試圖做一個JSON.stringify的對象,並得到一個很好看的結果看起來像這樣:
{
createDate: "2014-04-24T11:29:42.692Z",
desc: "test",
somemorevalues: "here"
}
,但它不會接受它,當我路過,在通一個變量。 (錯誤:Firebase.update失敗:第一個參數必須是一個包含要替換的子對象的對象。)如果我將它直接作爲字符串傳遞,它將起作用(?!!!)。這是變量中完全相同的信息..我到底失去了什麼?截至目前,我正在建立自己的對象是這樣的:
var newItem = {
title: item.title,
desc: item.desc,
ingress: item.ingress,
workarea: item.workarea,
years: {val: item.years.val},
}
並傳遞沿到火力點,其作品,但並不理想,因爲它的「靜」。
嗯,我不能得到它的工作。 $ add函數對傳入的項目正常工作。但不是$更新。 –
在您的示例中,您沒有在任何地方調用$ update,因此很難提供很多幫助。 – Kato
哦,對不起。我粘貼了錯誤的代碼。我正在修補試圖讓它工作。它不應該是.set()它應該是.update()。 –