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

标签 javascript angularjs ionic-framework

更新的帖子 所以在玩了很多之后我想出了这个: 我的 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/

相关文章:

javascript - D3 可折叠树不同节点颜色

javascript - 在文本框字段前面为带有背景的货币符号添加前缀

javascript - 有没有办法在 feed 中显示 http 链接的内容?

JavaScript 四舍五入到负小数位,如 Excel

javascript - 如何保持文本框大小始终不变

javascript - Angularjs Bootstrap 分页设置页面不触发页面更改

javascript - 表单提交时 Angular $scope 未定义

ionic-framework - ionic 4 - build android - 即使安装了 Gradle 也找不到已安装的版本

ios - 在 Ionic 的附件栏中添加键盘隐藏按钮

javascript - 计算数组对象的出现次数