2016-09-28 74 views
2

我制作了自定义指令,用于从控制器中检索数据。自定义指令作用域元素可见但未定义

我的变量范围元素中可见,但在尝试访问它时,我得到了未定义

HTML

<map borders="vm.borders"></map> 

指令

angular.module('myApp.directives') 
.directive('map', [ function() { 
    return { 
     restrict: 'E', 
     scope: { 
      borders: '=' 
     }, 
     link: function(scope, element, attrs) { 
      console.log(scope); //cfr linked image 
      console.log(scope.borders) //undefined 
     } 
    } 
}]); 

这里范围。它包含边界变量。

scope console

我缺少什么来获取这些边界值?

+1

你分配值'vm.borders'?我没有看到任何问题[这里](http://jsfiddle.net/cg8e3emv/) – Pradeepb

+1

当你console.log一个对象的属性不会被评估,直到你点击控制台中的箭头来展开对象。属性日志记录显示该值在运行时遇到日志语句时未定义。吴如果能避免这个问题。 – shaunhusain

回答

3

我可以建议一个ng-if添加到指令,因为例如,如果vm.borders从一个承诺了,ng-if要求:

<map borders="vm.borders" ng-if="vm.borders"></map> 
+0

简单明了,它的工作原理。在6分钟内接受答案 – Weedoze

+0

是的,ng - 如果经常有帮助。谢谢。 –