Angularjs指令共享相同的范围

时间:2017-09-20 10:19:58

标签: javascript angularjs

我正在尝试确定为什么范围是从同一指令共享的。我有这个:

 <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(我试图实现但从未稍微工作过)

https://github.com/zackdavidson/tappers-web/tree/master/public/scripts/tappers/app/components/transaction

0 个答案:

没有答案