1

我目前正試圖在AngularJS中實現一個非常簡單的指令。 最後,我希望能夠使用該指令是這樣的:無法訪問指令中的AngularJS屬性

<share-buttons url="google.com"></share-buttons> 

我的指令看起來像這樣(咖啡腳本):

module.directive 'shareButtons',() -> 


    controller = ['$scope', ($scope) -> 

     $scope.share =() -> 
      console.log $scope.url 

    ] 

    return { 
     restrict: 'EA' 
     scope: { 
      url: '=url' 
     } 
     templateUrl: viewpath_common('/directives/share-buttons') 
     controller: controller 
    } 

這是我的模板(玉):

.social-icons 
    button.btn.btn-li(ng-click="share()") 
     i.fa.fa-linkedin.fa-fw 

當我點擊按鈕,調用正確的函數($ scope.share),但唯一記錄的是undefined

你能幫我嗎?

回答

1

它,因爲你url屬性是「=」

所以它在尋找這樣一個範圍變量綁定雙向數據:

$scope.google.com = // should be some value. 

從控制器到指令傳遞。

如果你想傳遞一個字符串,用「@」單程結合

scope: { 
     url: '@' 
} 

注意:您還可以通過屬性訪問它的指令的鏈接功能(你不有以上)

// like so 
restrict: 'EA' 
scope: { 
    url: '@' 
} 
templateUrl: "someURL", 
link: function(scope, elem, attrs) { 
    console.log(attrs.url); 
} 
+0

哇,非常感謝你的快速和完美的幫助。 這解決了這個問題。謝謝一堆! – DerJacques 2015-04-01 15:37:55