我正在尝试为我的应用添加编辑功能。在一个视图中,我有一个按钮,可以将您带到编辑页面。
<button ng-click="editMission(selectedMission.key)">Edit Mission</button>
值selectedMission.key
用于确定使用的初始化编辑页面的表单数据的内容。
在控制器中,该功能如下所示:
$scope.editMission = function(key){
$location.path('/edit');
}
在编辑页面上我有:
<div data-ng-init="editInit()">
在我的控制器中,我有:
$scope.editInit = function(){
var query = myDataRef.orderByKey();
query.on("child_added", function(missionSnapshot){
if (missionSnapshot.key()==key){
...
}
});
}
如何根据editMission
的键值运行初始化函数。我应该使用一些全局键变量的getter / setter方法吗?我尝试将editInit
代码放在editMission
中,但表单数据不会填充在视图加载上。
答案 0 :(得分:0)
通常的做法是使用服务在视图/控制器之间共享变量。
因此,在您的情况下,您将使用您怀疑的getter / setter方法。我不知道你究竟想做什么,但你的情况下的服务看起来像这样:
app.factory('missionKeyService', function() {
var currentMission= {};
return {
setMissionKey: function(missionKey) {
currentMission.key = missionKey;
},
getMissionKey: function() {
return currentMission.key;
}
}
})
在你的控制器1中:
//include 'missionKeyService' in your controller function params
$scope.editMission = function(key) {
missionKeyService.setMissionKey(key);
$location.path('/edit');
}
和controller2:
//include 'missionKeyService' in your controller function params
$scope.editInit = function() {
var currentKey = missionKeyService.getMissionKey();
//do something with this key
...
}