我正在尝试确定为什么范围是从同一指令共享的。我有这个:
<locator-service
component="redirect"
url="/api/getAllLas1"
redirect="true"></locator-service>
<locator-service
component="signup"
url="/api/getAllLas2"
redirect="false"></locator-service>
这基本上是处理位置的指令(它完美地运作)
这是该类的指令
var app = angular.module("frog").directive('locatorService', LocatorService);
function LocatorService() {
return {
restrict: 'E',
templateUrl: '/scripts/frog/location-service.html',
controller: 'locatorController',
controllerAs: 'locatorController',
bindToController: true,
scope: {
component: "@",
url: "@",
redirect: "@"
}
}
}
我有&#34;范围&#34;声明,我在几个线程上读到这将创建一个孤立的范围。
这是控制器类(最小化)
angular.module("frog").controller('locatorController', LocatorController);
function LocatorController($scope, $rootScope, $http, $interval, $document) {
var self = this;
$scope.$watch('url', function () {
if (self.url === undefined) return;
console.log(self.url);
})
}
我将调试器附加到&#39; console.log(self.url);&#39;它打印出以下内容:
/api/getAllLas2
/api/getAllLas2
有人可以帮我确定为什么会这样吗? 我在我的Github上有一个例子,对于不共享相同范围的指令非常好,但是它使用了$ scope(我试图实现但从未稍微工作过)