gpt4 book ai didi

javascript - JS - 创建并传递一个函数,该函数将在另一个作用域的上下文中进行评估

转载 作者:行者123 更新时间:2023-12-03 06:05:03 25 4
gpt4 key购买 nike

我正在使用 Angular 和 Bootstrap Tour,我想尝试将对象保留在自己的区域中,这样它们就不必存储在 Controller 中。我想在服务中存储一个对象,但它也有对象中的功能。当它们得到“eval()”时,它们会在服务范围内触发,而不是在它们传递的 Controller 中触发。具体来说,“$scope”在服务中没有上下文,但在 Controller 中有。

这是代码示例:

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 之外,这可能吗?

最佳答案

您应该传入 $scope 或您需要的任何上下文,作为函数的参数:

onShow: function (tour, $scope) {
$scope.tourDisabled = true;
$scope.filter.availability = 'all';
$scope.filter.gallery = 'Show All';
$scope.updateFilter();

关于javascript - JS - 创建并传递一个函数,该函数将在另一个作用域的上下文中进行评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39586341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com