【发布时间】:2016-11-28 02:21:21
【问题描述】:
我使用的 Ionic Framework 版本是 1.7.16
在 Android 上导致错误的行如下
var obj = {[$myid] : firebase.database.ServerValue.TIMESTAMP};
如果我将上面的行改为下面的行,那么没有错误
var obj = {'test':'test'};
控制码:
.controller('SearchStateCtrl', function($scope, $firebaseObject, $firebaseArray, $location, $stateParams, my_details) {
$scope.stateId = $stateParams.stateId;
$scope.my_details = my_details;
var user = firebase.auth().currentUser;
$scope.my_id = user.uid;
var database = firebase.database();
var trips = database.ref('Trips/'+$stateParams.stateId);
trips.on('value', function(snapshot) {
$scope.my_trips = $firebaseArray(trips);
}, function(err) {
console.log("Something is wrong.");
});
$scope.addToMyTrip = function ($trip, $myid) {
var tripRef = database.ref('MyTrips');
var obj = {[$myid] : firebase.database.ServerValue.TIMESTAMP};
tripRef.set(obj).catch(function(error) {
console.log('Somthing went wrong.');
});
var tripRef = database.ref('MyTrips/'+$trip.$id);
tripRef.set({
'i-am': $trip['i-am'],
'trip-date': $trip['trip-date'],
'state-from': $trip['state-from'],
'city-from': $trip['city-from'],
'state-to': $trip['state-to'],
'city-to': $trip['city-to'],
'user-id': $trip['user-id']
}).catch(function(error) {
console.log('Somthing went wrong.');
});
}
})
动态键名由于某种原因在 android 上出现错误,当我使用
在网页中查看它时一切正常ionic serve --lab
【问题讨论】:
-
发布您的完整代码,然后人们可以提供帮助。
-
好像你的控制器不见了,你能把你在js中使用ng-ctrl和你的控制器定义的地方贴出来
-
为什么在 $myid 周围有这些方括号?你试过 var obj = {$myid : firebase.database.ServerValue.TIMESTAMP}; ? (注意:我不知道标志性的)
-
没有括号我收到以下错误:ionic.bundle.js:26794 错误:Firebase.set 失败:第一个参数在属性“Users.26ruYxpW6id5n1ZRnrmAGR161qU2.我的旅行。-KNSSzyi9Je31934RlOj.requests-by'。键必须是非空字符串,并且在 Scope.$eval (localhost:8100/lib/ionic/js/ionic.bundle.js:30395:28) 中不能包含“.”、“#”、“$”、“/”、“[”或“]”
-
括号是它们用于评估括号内的值。据我了解,问题是,当 ionic 尝试将代码转换为 android 和 ios 时,由于某种原因它错过了解释这一行。因为在 web 视图中它工作正常。
标签: javascript android angularjs ionic-framework firebase