2014-04-24 57 views
0

我想開發一個像通知一樣的FaceBook(就像收到朋友請求時有一個圖標,右上角有通知數量發光一樣)。Angularjs指令不加載PopOver內容

爲此,我寫了一個popover指令。

app.directive('popOver', function ($compile) { 


var itemsTemplate = "<div ng-repeat='item in items'>{{item}} <br/><hr/></div> "; 
var getTemplate = function (contentType) { 
    var template = ''; 
    switch (contentType) { 
     case 'items': 
      template = itemsTemplate; 
      break; 
    } 
    return template; 
} 
return { 
    restrict: "A", 
    transclude: true, 
    template: "<span ng-transclude></span>", 
    link: function (scope, element, attrs) { 
     var popOverContent = "<div></div>"; 

     if (scope.items) { 
      var html = getTemplate("items"); 
      popOverContent = $compile(html)(scope); 
     } 

     var options = { 
      content: popOverContent, 
      placement: "bottom", 
      html: true, 
      title: scope.title 
     }; 
     $(element).popover(options); 


    }, 
    scope: { 
     items: '=', 
     title: '@' 
    } 
}; 

});

的項目是居住在控制器,並有我使用$超時從數據庫中獲取新的數據並填寫scope.Items

在UI我有一個按鈕,顯示新的通知和點擊數它我想展示與物品popover。問題是什麼時候點擊按鈕我popover沒有加載新的項目。

<button pop-over items="items" class="navbar-btn btn-info round-button" title="Notifications:" > {{newAlertCount}} </button> 

回答

0

指令都有自己的範圍,所以我假設當你在你的控制器改變$scope.items你在談論不同的範圍;我認爲,你想要的是直接在原來的$scope.items對象看,所以我想補充一點:

scope : { 
    items : '=items' 
}, 

你的指令。