我正在使用角度和自举游览,我想尝试将对象保存在自己的区域中,因此它们不必存储在控制器中。我想在服务中存储一个对象,但它也有对象中的函数。当那些得到“eval()”时,它们会在服务范围内触发,而不是通过它们的控制器。具体来说,“$ scope”在服务中没有上下文,但在控制器中没有。
下面是代码示例:
var returnedObj = {
steps: [
{
element: '#newProduct',
title: 'Create Products',
placement: 'bottom',
content: 'Create new products here'
}
],
backdrop: true,
//The function that I want to interact with the $scope through the controller
onShow: function (tour) {
$scope.tourDisabled = true;
$scope.filter.availability = 'all';
$scope.filter.gallery = 'Show All';
$scope.updateFilter();
}
};
我已经尝试过JSON.stringify和JSON.parse,但它不适用于函数。这只是无望吗?
除了$ rootScope,这可能吗?
答案 0 :(得分:1)
您应该传递$scope
或您需要的任何上下文作为您的函数的参数:
onShow: function (tour, $scope) {
$scope.tourDisabled = true;
$scope.filter.availability = 'all';
$scope.filter.gallery = 'Show All';
$scope.updateFilter();