假设我想将此变量设为一个常量,以便在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则是正确的选择。 您可以这样定义它:
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; }]);