2016-09-28 271 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 - 如果經常有幫助。謝謝。 –