我可以使用angularjs内置$location
服务从网址获取一些 ID 。现在,我需要在页面加载时调用具有该ID的服务,然后需要以某种方式呈现响应。
我正在使用ng-init:
ng-init="uid=$location.path().substring($location.path().lastIndexOf('/') + 1); callToTheService(uid);"
当我执行时,这种方式ng-init无法调用内置服务,这就是我未定义的原因。我在AngularJS中缺少什么?我要以确切的方式配置它。
答案 0 :(得分:1)
最好在控制器中初始化它。只需将其绑定到范围。然后注入您的服务并从中调用一个函数。这是一个例子:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $location, YourService) { // injections are important
$scope.uid = $location.path().substring($location.path().lastIndexOf('/') + 1);
$scope.log = function() {
YourService.callToTheService($scope.uid);
}
});
app.service("YourService", function() {
this.callToTheService = function(uid) {
console.log("UID: ",uid); // empty in this case
}
})

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<button ng-click="log()">Log UID</button>
</div>
&#13;