如何从attrs传递一个值。$ observe in angular directive

时间:2014-12-15 17:20:32

标签: angularjs angularjs-directive

目前,console.log(value)输出' lat'的值。但如果我尝试在我的指令中的其他地方访问该值,它将无法工作。我试图设置一个等于attrs的变量。$ observe以及放置attrs。$ observe在一个函数中。另外由于某种原因我无法返回数据的价值。任何想法

 angular.module('Ski').directive('mapCanvas', function() {
  function link (scope, element, attrs) {
    attrs.$observe('lat', function(data) {
      console.log(data);
    });
  }
}

1 个答案:

答案 0 :(得分:0)

只需使用scopevar

创建一些全局变量即可实现此目的

<强> CODE

angular.module('Ski').directive('mapCanvas', function() {
  function link (scope, element, attrs) {
    scope.lat = ''; //or it can be var lat = '';
    attrs.$observe('lat', function(data) {
      scope.lat = data; //or it can be var scope.lat = '';
      console.log(data);
    });
    scope.test = function(){
       //when it gets called
       console.log(scope.lat);
    }
  }
}

希望这可以帮到你。感谢。