我在Angular中有两个控制器,两者都有一个变量。 AddController - >保存/更新 控制器2 - >根据Id
获取单个记录脚本:
app.controller('AddController', function ($scope, MyService) {
$scope.IsNewRecord = 1; //The flag for the new record
$scope.Save = function () {
//Load values in local variable
};
//If the flag is 1 then it is new record
if ($scope.IsNewRecord === 1) {
//Add new data
},
}
else {
//Else Edit the record
}
SingleController:获取单条记录
app.controller('SingleController', function ($scope, MyService) {
$scope.search = function (Id) {
var promiseGetSingle = MyService.getbyId(Id);
promiseGetSingle.then(function (pl) {
var res = pl.data;
//I ll be using res value in UI to display in text boxes.
$scope.IsNewRecord = 0; //If i try to edit and save it back, then
//in If-Cluse of above controller should be updated with / //IsNewRecord value as 0..
},
如何实现...如何与另一个控制器通信以传递我的标志值进行编辑。
如果我不清楚,请让我知道..我将要知道吗?
答案 0 :(得分:0)
您可以使用$rootScope
和事件在控制器之间进行通信。查看Scope the documentation $on
,$broadcast
和$emit
方法。
//On first controller
$rootScope.$broadcast('myEventName', {foo: 'bar'});
//On second controller
$rootScope.$on('myEventName', function (params) {
params.foo; //bar
});
答案 1 :(得分:0)
您可以使用服务来使用getter和setter传递值。
app.service('FlagHandlerService', function() {
this.setFlagValue = function(flagValue){
this.flagValue = flagValue;
}
this.getFlagValue = function(){
return this.flagValue;
}
});
然后,您可以随时更改值,并在需要时获取值。 我不确定这是否正是您所寻找的,但它可能会指向您正确的方向。