小编use*_*962的帖子

如何覆盖/更改值提供程序的AngularJS值

我想覆盖价值 -

angular.module("data", []).value('apiBase', '/api1/data')
Run Code Online (Sandbox Code Playgroud)

在运行时,我试图修改它 -

angular.module("data").value('apiBase', '/someotherapi/data')
Run Code Online (Sandbox Code Playgroud)

在某些服务/控制器中,但它失败了,它没有覆盖apiBase的值.

我试着注入apiBase我的控制器并进行更改.

angular.module('data').controller(function(apiBase){apiBase = '/someotherapi/data'})
Run Code Online (Sandbox Code Playgroud)

它失败了.

然后我尝试将apiBase defination更改为像这样的对象

angular.module("data", []).value('apiBase', {"api_base_url":"/api1/data"})
Run Code Online (Sandbox Code Playgroud)

然后在控制器中修改它:

angular.module('data').controller(function(apiBase){apiBase.api_base_url = '/someotherapi/data'})
Run Code Online (Sandbox Code Playgroud)

有用.所以我的问题是:为什么angular.module('data').value('samekey', 'newvalue')不能覆盖价值?当它只是一个字符串/数字(主要类型.第二次尝试)时,为什么不能修改该值.在我看来,Value提供者是单身,它应该改变.

javascript angularjs angularjs-service

5
推荐指数
1
解决办法
5892
查看次数

标签 统计

angularjs ×1

angularjs-service ×1

javascript ×1