gpt4 book ai didi

javascript - 我如何获得 Angularjs 模块并在其上调用 .value?

转载 作者:行者123 更新时间:2023-11-30 08:47:02 25 4
gpt4 key购买 nike

我正在尝试使用 vertxbus module .它的配置是使用 .value 设置的。如何从我的“appModule”更新这些配置值?据我了解

angular.module('knalli.angular-vertxbus')

应该返回对模块的引用,.value 应该改变注入(inject)的值。我创建了一个 jsFiddle这是使用的 js:

'use strict';

var testmodule = angular.module('TestModule', []).value('key', 'module').value('key', 'module2');
testmodule.factory('MyService', ['key', function (key) {
return key;
}]);

var module = angular.module('myApp', ['TestModule'])
.run(function () {
testmodule.value('key', 'run1');
angular.module('TestModule').value('key', 'run2');
}).controller('MyCtrl', ['$scope', 'MyService', 'key', function ($scope, MyService, key) {
$scope.value = MyService;
$scope.key = key;
}]);

我希望得到 run2 或至少 run1 的结果,但返回了 module2。为什么?

最佳答案

.value.constant 或更一般的 .config 背后的实际想法是改变 模块的组件应该自行构建。

在这种情况下,angular-translate 的 vertxBus 组件将隐式调用隐式连接到服务器的 SockJS 实例。这意味着在应用程序运行之前必须知道配置设置。因此,有两个阶段(参见 Ilan Frumer 的回答):配置和运行。

但是,由于 .value.config 过于静态,可能会与其他组件发生冲突,因此 Angular 模块 angular-vertxbus 有一个所有设置都有自己的提供程序(自 0.5 版起:https://github.com/knalli/angular-vertxbus/releases/tag/v0.5.0)。

0.5 开始,这可能是这样的:

var module = angular.module('app', ['knalli.vertx-eventbus']);
module.config(function(vertxEventBus) {
vertxEventBus.useDebug(true).useUrlPath('/eventbus');
});

与其他提供程序一样,提供程序在配置阶段可用。

免责声明:我是 angular-vertxbus 的作者

关于javascript - 我如何获得 Angularjs 模块并在其上调用 .value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21069789/

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