2015-10-02 74 views
0

我想創建一個隔離範圍的指令。如何在我的情況下設置我的Angular指令?

angular.module('myApp').directive('itemCollection', 
['$cookies',  
    function($cookies) { 
     return { 
      restrict: 'E', 
      scope: { 
       items: '=' 
      }, 
      link: function(scope) { 
        console.log(scope.items) 
        console.log(items) 
        --> both console.log show undefined 
      } 
     }; 
    } 
]); 

的Html

<item-collection items="item1"></item-collection> 

我似乎無法得到我的指令中'item1',它是不確定的。我不知道我錯過了什麼。任何人都可以幫助我嗎?謝謝!

+2

將'item1'設置爲您父範圍內的任何內容? – user2718281

+0

把你的html中的item1變成一個字符串呢? item1是您的案例中的一個對象,如果沒有定義,那麼這是有道理的。所以只要嘗試使它成爲一個字符串,請回報。那應該解決它。 – manonthemat

+0

所有我們可以肯定地說的是,它在那個時候是「未定義」**。如果你想知道如何設置你的指令,那麼你應該向我們展示你的指令,或者至少告訴我們一些關於它的信息。 – zeroflagL

回答

1

item1是否異步?如果是這樣,您需要在指令中設置一個監視並儘快處理。

return { 
     restrict: 'E', 
     scope: { 
      items: '=' 
     }, 
     link: function(scope) { 
       console.log(scope.items) 
       console.log(items) 
       --> both console.log show undefined 

      scope.$watch(
       function() { return scope.items; }, 
       function(newValue) { 
        if (newValue != null) { 
         console.log('not null:' + newValue); 
        } 
        else { 
         console.log('still null, skip'); 
        } 
       } 
      ); 
     } 
    }; 
相關問題