gpt4 book ai didi

javascript - 将 Firebase 记录 key 传递到 URL

转载 作者:行者123 更新时间:2023-11-30 17:04:30 26 4
gpt4 key购买 nike

我正在向 page1 上的 Firebase 数组添加一个项目,这是在用户单击“完成”按钮时完成的。但是,我还想使用在其中检索记录的 ng-route 加载下一页。我想要用户可以再次访问的唯一 URL,这就是我让它直接附加到 URL 的原因。

我目前使用的方法是在第一个函数中添加记录,并在我使用适当的 url 绑定(bind)到范围时检索 key (参见代码段 #2)。在 ng-click 中列出的第二个函数中,我让它使用 url 中附加的 key 执行路由。

使用此设置,它会添加记录,但不会将我带到正确的页面,它默认为主页。我想知道是不是因为它没有解决我的 $add 中的 promise ,因此无法在它运行范围内的第二个函数之前将它附加到 url。

非常感谢任何帮助,如果您需要我的更多代码,请告诉我!

//Snippet from page1.html (Within appCtrl and form scope)
<button ng-click="form.storeCheck(); appCtrl.pageLoad(form.urlKey)" ng-disabled="checkVerifyForm.$invalid" class="btn btn-lg btn-success pull-right">Complete</button>

//Snippet from Page1Controller (form.storeCheck)
this.checkList.$add(this.check).then(function(ref){
this.urlKey = 'spec/:'+ref.key();

//Snippet from AppController (appCtrl.pageLoad)
this.pageLoad = function(page){
$location.path('/'+page);

//Snippet from config ng-route
.when('/spec/:urlKey', {
templateUrl: 'views/spec.html',
controller: 'SpecController',
controllerAs: 'spec'
})

最佳答案

ng-click="form.storeCheck(); appCtrl.pageLoad(form.urlKey)"

在这段代码中,你说的是在 form.storeCheck() 之后直接运行 appCtrl.pageLoad() 如果这是一个不涉及数据的离线应用程序,那会很好,但实际上,appCtrl.pageLoad 应该只在 storeCheck 时被调用已经解决,这不是你在这里暗示的。

有多种方法可以解决这个问题,也许最简单的方法是在一个 Controller 中完成所有这些

在您的 Page1Controller 中,添加 $location 作为依赖项

this.checkList.$add(this.check).then(function(ref){
$location.path('/spec/:'+ref.key());
}

将您的 html 更改为

<button ng-click="form.storeCheck();"

关于javascript - 将 Firebase 记录 key 传递到 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28270222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com