gpt4 book ai didi

javascript - 如何在 services.js 中创建用户在 ionic 应用程序(或基本上任何 angularJS)应用程序中选择的常量?

转载 作者:行者123 更新时间:2023-11-30 00:04:32 27 4
gpt4 key购买 nike

更新的帖子所以在玩了很多之后我想出了这个:我的 Services.js 没有值或常量,而是我有这样的东西:

.factory('urlFactory', ['$resource', function($resource) {
return {
getUrl: function(baseURL) {
$resource(baseURL + "helloWorld/");
}
}
}])

在我的 .state 中的 app.js 中,我有:

resolve: {
building: ['$stateParams', 'urlFactory', function($stateParams, urlFactory) {
var helloWorld = urlFactory.getUrl($scope.baseURL).get({
id: parseInt($stateParams.id, 10)
});
return helloWorld;
}]
}

最后在我的 controller.js 中我有:

$scope.setURL = function() {
console.log('Set BaseURL ' + $scope.baseURL.url);
$localStorage.storeObject('baseURL', $scope.baseURL);
$scope.baseURL = $scope.baseURL.url;
$scope.closeDomainModal();
};

然而,它不起作用,谁能帮我弄清楚为什么。谢谢。

原帖我通常在我的 services.js 中定义一个常量,如下所示:

.constant("baseURL","http://localhost:3000/").

并且 services.js 中的每个工厂都使用此 baseURL 返回一个 $resource url。但是,在应用程序启动时,用户输入将用作 baseURL 的 url。问题是,如何获取用户选择的 URL 作为可在服务中使用的常量 baseURL。还是有更好、更合适的方法来解决这个问题?

我尝试在服务中使用 $scope 但它不起作用。这里有另一种使用全局变量的方法吗?此外,当用户输入 URL 时,它会存储在本地内存中。那么我是否可以使用 $localStorage 读取它?我试过使用 $localStorage 来设置服务中的常量,但无济于事。

或者有什么方法可以将用户定义的 baseURL 的值作为参数传递给工厂方法?非常感谢。

最佳答案

您可以使用 .value 而不是 .constant。它与 .constant 几乎相同,但您可以在应用程序运行后更改该值,例如当用户输入他们的值时。

angular.module('app', [])
.value('baseURL', 'default')
.controller('Controller', ['$scope', 'baseURL',
function($scope, baseURL) {

// use this to let the user update the url
$scope.updateURL = function(url) {
baseURL = url;
};
}
]);

关于javascript - 如何在 services.js 中创建用户在 ionic 应用程序(或基本上任何 angularJS)应用程序中选择的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39025265/

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