我想在另一个控制器中使用ng-grid表中的变量,
我的ng-grid的一部分定义如下:
app.controller('ng-grid-controller'){
....
$scope.gridOptions = {
data:MyData,
columnDefs: [
{field:'_id'},{name:'name',cellTemplate: 'templates/show.html'}]
};
$scope.getDetail = function(_id){
alert(_id);
var test=_id;
console.log(test);
return test;
};
}
我能够在我的模板show.html
中显示所显示的值,如下所示:
<div ng-style="{'cursor': row.cursor}" ng-click="getDetail(row.getProperty('_id'));" data >
</div>
但我的问题是如何在另一个控制器中访问此值,我需要传递以将此值作为另一个模板的参数传递:
在我的路线中,我有类似的东西:
when('/show/:thatValue', {// Here I want that value I display=thatValue
templateUrl: 'templates/displayvalue.html',
controller: 'ShowController'
}).
在我的控制器中:
app.controller('ShowController', function($scope) {
$scope.value='the value I display';//Something like this
});
答案 0 :(得分:0)
当您需要在控制器之间共享数据时,最好使用服务,然后您可以将该值注入您的相应控制器。例如:
app.factory('SomeService', [ '$log', function($log) {
return {
variable: null,
getVariable: function() {
return this.variable;
},
setVariable: function(value) {
this.variable = value;
}
};
}]);
然后在你的Controller中使用它:
app.controller("MyController", [ '$scope', 'SomeService', function($scope, SomeService) {
$scope.someMethod = function() {
$scope.variable = SomeService.getVariable();
};
$scope.setSomeService = function(value) {
SomeService.setVariable( value );
}
}];