我目前正在與firebase(使用angularFire)一起提供firebase數組和對象的許多工廠。當routeParameter更改時,AngularFire在工廠中更改參考
只要路由參數「element_id」發生變化,我需要在會話中多次更改所有factorys的引用,但是一旦第一次調用它們,angularjs就會加載所有的工廠,而且我沒有看到更新引用之後的方法這個最初的呼叫。
我試着重裝使用的應用程序
$route.reload();
這什麼都沒有改變和
$window.location.reload();
這情況造成錯誤404,因爲這個頁面是不是在HTML5模式可用本地主機:8000 /部件1是不存在或在沒有使用html5模式時將我帶回localhost:8000沒有我的element_id。
這裏是我的工廠與我的根火力工廠之一:
app.factory("fireroot", function(){
var reference = new Firebase("https://mybase.firebaseio.com");
return reference;
});
app.factory('core_data', function($firebaseObject, fireroot, $routeParams) {
var reference = fireroot.child("elements").child($routeParams.element_id).child("core-data");
var core_data = $firebaseObject(reference);
return core_data;
});
非常感謝你的幫助,我只是做了我過去的幾年中編碼感謝這個社會,終於是時候積極參與:) 。
工廠是** **單身。如果你想在路由改變時改變諸如'core_data'之類的東西,你應該把它放在路由的解析器函數中。 – georgeawg