当前位置: 首页 > 面试题库 >

如何创建此全局常量以在Angularjs中的控制器之间共享?

范金鑫
2023-03-14
问题内容

假设我想将此变量设为一个常量,以便在Angularjs中的控制器之间共享;

$webroot = "localhost/webroot/app"

经过一番调查,看来服务是可行的方法。但是最好的方法是什么?我使用工厂,服务,价值还是其他?

下面是来自angularjs-master-seed的services.js;

angular.module('myApp.services', []).value('version', '0.1');

如何修改它以使其具有在控制器之间可共享的常量$ webroot?

我可以做以下事情吗?

angular.module('myApp.services', [])
        .value('version', '0.1')
        .constant('webroot','localhost/webroot/app');

如果可以,如何在控制器中调用它?


问题答案:

如果变量具有恒定值或设置一次,value则是正确的选择。
您可以这样定义它:

app = angular.module('myApp', []);
app.value('$webroot', 'localhost/webroot/app');

现在,您可以将服务注入控制器并使用它:

app.controller('myController', ['$scope', '$webroot', function($scope, $webroot) {
  $scope.webroot = $webroot;
}]);

编辑#1
以适应您更新的问题:您可以使用与值相同的方式使用常量:

app = angular.module('myApp', []);
app.constant('$webroot', 'localhost/webroot/app');

app.controller('myController', ['$scope', '$webroot', function($scope, $webroot) {
  $scope.webroot = $webroot;
}]);


 类似资料:
  • 问题内容: 我有一项从服务器中获取一些客户端数据的服务: 然后在一个控制器中执行: 一切都很好。但是,我正在尝试从该服务上的另一个控制器进行监视,以在数据更改时更新其范围,而不是必须重新启动http请求: 我现在只是提醒,但从未触发过。页面最初加载时,它会发出“未定义”警报。我在控制台中没有任何错误,并且所有$ injects都很好,但是似乎从未意识到服务中的数据已更改。我在手表上做错了吗? 非常

  • 问题内容: 我正在尝试在控制器之间共享数据。用例是一个多步骤的表单,在一个输入中输入的数据以后会在原始控制器之外的多个显示位置中使用。下面和jsfiddle中的代码。 的HTML JS 任何帮助是极大的赞赏。 问题答案: 一个简单的解决方案是让您的工厂返回一个对象,并让您的控制器使用对同一对象的引用: JS: HTML: 演示: http : //jsfiddle.net/HEdJF/ 当应用程序

  • 如果可能的话,我愿意使用服务。 请建议。 谢谢 我还使用来呈现视图

  • 问题内容: 我正在阅读有关Angular验证的文章,并认为在我自己的项目中使用它会很好。它运行得非常好,我想在成功验证表单后在其他控制器中扩展它的访问方法。我尝试了各种方法来执行此操作,但似乎看不到$ scope对象中的方法。 我希望有人能告诉我我想念的东西才能完成这项工作。我叉了个笨蛋。 问题答案: 正确的方法是使用角度服务。例如: 这样,您可以在注入到的任何控制器中访问内部功能: 看到这个演示

  • 问题内容: 我有两个Angular控制器: 我无法使用内部,因为它是未定义的。但是,如果我尝试像这样传递它… 我得到一个错误。有谁知道如何做到这一点? 在做 也失败。 注意: 这些控制器彼此之间不嵌套。 问题答案: 在多个控制器之间共享变量的一种方法是创建服务并将其注入到要使用它的任何控制器中。 简单服务示例: 在控制器中使用服务: 这个博客对此进行了很好的描述(特别是第2课)。 我发现,如果要跨

  • 问题内容: 我是angular的新手,我想知道如何在angular的控制器之间共享变量。我正在使用以下脚本- 在Main.js中: 在Index.html中 我正在发送数据并接收响应的ajax一切正常,我的问题如下: 在SearchCtrl函数中,我有一个名为$ scope.result的变量,稍后在Index.html中进行引用。如果我将包含该变量的html代码插入SearchCtrl控制器,则