【问题标题】:Error: Firebase.child failed: First argument was an invalid path: "null". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"错误:Firebase.child 失败:第一个参数是无效路径:“null”。路径必须是非空字符串,并且不能包含“.”、“#”、“$”、“[”或“]”
【发布时间】:2015-11-13 22:15:05
【问题描述】:

我已经按照 Packt Publishing 创建了一个简单的项目组合,目前正在获得:

错误:Firebase.child 失败:第一个参数是无效路径:“未定义”。路径必须是非空字符串,并且不能包含“.”、“#”、“$”、“[”或“]”

projects.tpl.html页面上,它显示项目以及关键字,标题链接到单个项目。

<a href="#/projects/{{id}}">{{project.title}}</a>

转到显示标题和关键字的页面

但是,当您刷新页面时,它会返回 并抛出此错误


projects.svc.js

'use strict';

app.factory("projectSvc", ['FIREBASE_URI', '$firebaseArray', '$firebaseObject',
  function(FIREBASE_URI, $firebaseArray, $firebaseObject) {
var projectsUri = FIREBASE_URI + '/projects';
var projectsRef = new Firebase(projectsUri);
var projects = $firebaseArray(projectsRef);

var getProjects = function () {
  return projects;
};

var getProject = function (index) {
  var key = projects.$keyAt(index);
  var projectRef = projectsRef.child(key);
  return $firebaseObject(projectRef);
};

return {
  getProjects: getProjects,
  getProject: getProject
}
  }]);

project.ctrl.js

'use strict';

app.controller('ProjectCtrl', ['$scope', '$routeParams', 'projectSvc',
function ($scope, $routeParams, projectSvc) {

var hasAnError = false;

$scope.hasError = function () {
  return hasAnError;
};

if ($routeParams.projectIndex !== null) {
  var index = parseInt($routeParams.projectIndex);

  if (!isNaN(index)) {
    projectSvc.getProject(index).$bindTo($scope, "project");
  }
  else {
    hasAnError = true;
  }
}
}
]);

有什么想法吗?谢谢!

【问题讨论】:

    标签: angularjs angular-ui-router firebase angularfire


    【解决方案1】:
    1. ParseInt 需要第二个参数 radix。在某些情况下,它可能是 8 而不是 10。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt

    2. var key = projects.$keyAt(index); var projectRef = projectsRef.child(key);异常是由这些行引起的。可能这些操作是异步的,并且您没有获得正确的键值。您可以访问未初始化的对象。尝试将所有代码放入 $loaded 回调中。看这里https://www.firebase.com/docs/web/libraries/angular/api.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2017-12-01
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      相关资源
      最近更新 更多